Step 7 Störungsmeldungen projektieren! Frage...

Tommy843

Level-1
Beiträge
147
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

ich arbeite zur Zeit an einer kleinen Schweißmaschine wo sich paar Zylinder bewegen. Nun bin ich bei der Thematik "Störungsmeldungen" angelangt. Was meint ihr welche Störungsmeldungen bei Zylindern sinnvoll sind? Ich bin mir nämlich nicht so ganz sicher bis zu welcher Grenze zum Beispiel "Warnmeldungen" mehr Sinn machen oder es dann doch eine "Fehlermeldung" sein muss.

Das sind alles größtenteils nur Bitmeldungen die ich dann in einer Meldeanzeige(Flexible) anzeigen lassen möchte.
Da macht nach meiner Logik nur folgendes Sinn:

1 Zylinder, 2 Ausgänge(A1.0, A1.1), 2 Sensoren(E1.0,E1.1)

Alles nur Beispiele:
Störmeldung=E1.0 nicht u. E1.1 nicht! Zylinder hängt quasi in der Mitte fest, warum auch immer. Ist ja hier mal nicht so wichtig!
Störmeldung=A1.0 kommt, aber Abschaltung erfolgt nicht!

Das erste ist ja recht einfach. Das zweite wird nur funktionieren wenn ich ein zeitliches Limit programmiertechnisch hinzufüge.
Aber was meint ihr im Bezug auf eine Warnmeldung? Macht das überhaupt Sinn? Weil in meinem Lastenheft steht nur das die Funktion "Störung löschen" gegeben sein muss. :roll:
Anregungen bitte...;)


Gruß Tommy
 
Hi!

Antriebe überwacht man in der Regel auf "Laufzeit". Das heisst, dass man überwacht, ob der Zylinder in einem gewissen Zeitfenster und damit überhaupt in der jeweiligen Endlage ankommt.

Auch eine Endlagen-Plausibilitätsprüfung macht je nach Anwendung Sinn.

Das ganze sollte in deinem "ZylinderansteuerBaustein" integriert sein.


Gruß,

Ottmar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sehe das etwas als Definitionsfrage.

Was sind Störmeldungen und was sind Warnmeldungen.
Wenn eine Endlage nicht kommt, geht es ja auch nicht weiter. Da finde ich die Unterscheidung zwischen Warn- und Störmeldung nicht so interessant.

Je nachdem wie die Störmeldung projektiert ist, könnte es aber sein, dass die Funktion "Störung löschen" nicht gegeben ist.
Das meint der Kunde vermutlich damit.

Z.B.:

Code:
U #Endlage_GS
U #Endlage_AS
S #Stoerung

Diese Störung kriegt man dann erst quittiert, wenn eine der Endlagen wieder weg ist.
 
Ich würde da einfach die Bewegungen laufzeitüberwachen.

Bei Deinem BSP 1: das ist doch der Normalfall für eine Endlage?
 
Ich würde da einfach die Bewegungen laufzeitüberwachen.

Bei Deinem BSP 1: das ist doch der Normalfall für eine Endlage?

Das Beispiel 1 wäre eher mein Beispiel für eine Störung am Zylinder. Weil, wenn beide Endschalter kommen, ist die Kolbenstange in der Mitte und quasi in keiner Endlage. Normalfall für eine Endlage wäre wenn einer der Beiden Sensoren aktiv ist.

Gruß Tommy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!

Antriebe überwacht man in der Regel auf "Laufzeit". Das heisst, dass man überwacht, ob der Zylinder in einem gewissen Zeitfenster und damit überhaupt in der jeweiligen Endlage ankommt.

Daran dachte ich auch ja. Die Frage ist, wann ist es eine Störung?

Auch eine Endlagen-Plausibilitätsprüfung macht je nach Anwendung Sinn.

Was meinst du damit?

Gruß Tommy
 
Naja, vielleicht hätte ich doch mal meinen Chef vorher Fragen sollen...:ROFLMAO:

Es soll nämlich so sein, das wenn in einer bestimmten Zeit die Endlage nicht erreicht wurde, eine Meldung erscheint. So soll bei jedem Zylinder vorgegangen werden. Wie würdet ihr das mit der Zeit machen? Messen wie lange der Zylinder im Normalfall bis zur Endlage benötigt und dann irgendwie paar "ms" Toleranz um eventuell auftretende Druckschwankungen auszugleichen, dazurechnen? Sowas soll's ja geben ;)...

Gruß Tommy
 
Zuletzt bearbeitet:
Wenn die Maschine / Anlage nicht weiter produzieren kann ist eine Störung, fielleich? Die Produktion ist unterbrochen/ gestört. bike

Ja, macht definitiv am meisten Sinn. Warnmeldungen sind dann wohl eher da anzusiedeln wo Füllstände, Drehzahlen, Ströme o.ä. überwacht werden müssen. Von daher wirds in meinem Fall nur Störungen geben.

Gruß Tommy
 
Wie "empfindlich" Deine Laufzeitkontrolle ist/sein kann hängt ja vielleicht auch von der Anwendung ab.

Es gibt Anwendungen, da muss ein Zylinder dem Anlagenzyklus folgen. Da würde ich die Laufzeitkontrolle in enge Grenzen fassen.
Wartet die Anlage auf jeden Fall die Bewegung des Zylinders ab, würde ich die Grenze nicht zu knapp wählen. Sonst "riskierst" Du unnötige "false positives" - also Fehlermeldungen die gar nicht gewünscht sind, weil die Laufzeit der Bewegung nur geringfügig abweicht. Ca. die doppelte bis dreifache Laufzeit mach oft Sinn.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie "empfindlich" Deine Laufzeitkontrolle ist/sein kann hängt ja vielleicht auch von der Anwendung ab.

Es gibt Anwendungen, da muss ein Zylinder dem Anlagenzyklus folgen. Da würde ich die Laufzeitkontrolle in enge Grenzen fassen.
Wartet die Anlage auf jeden Fall die Bewegung des Zylinders ab, würde ich die Grenze nicht zu knapp wählen. Sonst "riskierst" Du unnötige "false positives" - also Fehlermeldungen die gar nicht gewünscht sind, weil die Laufzeit der Bewegung nur geringfügig abweicht. Ca. die doppelte bis dreifache Laufzeit mach oft Sinn.

Ja die Anlage wartet auf jeden Fall. Geht alles nur nacheinander. Aber doppelte bis sogar dreifache Laufzeit? Wie kommst du auf dreifach?

Gruß Tommy
 
Es geht doch nur darum dem Bediener zu signalisieren, dass er eingreifen muss. Üblicherweise dauern Zylinderbewegungen weniger als 5 Sekunden.
Bei einer Bewegung die 1s dauert würde ich eher 3s als Laufzeitkontrolle eintragen. Bei 3s dann 6s.

Es kommt ja dann nicht so sehr darauf an, dass die Meldung vielleicht 1s später ausgegeben wird. Wohl aber darauf, dass die Anlage nicht permanent Störungen generiert, weil die Bewegung nur geringfügig verzögert wird.
 
Warnmeldungen setze ich ein um den Bediener auf etwas hinzuweisen, steht zb eine
Antrieb auf einen Endschalter zeige ich das den Bediener als Gelbe Warnung an.
Du kannst in diese Richtung nicht weiterfahren. Eine Warnung muß nicht Quittiert
werden.

Störmeldungen sind eigentlich Zustände die meines Erachtens Quittiert werden müssen
und ein einfach weiter so vermeiden soll. Störmeldungen werden Rot angezeigt und müssen
Quittiert werden, wie zb da auslösen eines MSS.

Beides hat seines Daseinsberechtigung und sollte nicht zu sparsam eingesetzt werden, es
kann so manchen Telefonanruf vom Kunden ersparen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es geht doch nur darum dem Bediener zu signalisieren, dass er eingreifen muss. Üblicherweise dauern Zylinderbewegungen weniger als 5 Sekunden.
Bei einer Bewegung die 1s dauert würde ich eher 3s als Laufzeitkontrolle eintragen. Bei 3s dann 6s.

Es kommt ja dann nicht so sehr darauf an, dass die Meldung vielleicht 1s später ausgegeben wird. Wohl aber darauf, dass die Anlage nicht permanent Störungen generiert, weil die Bewegung nur geringfügig verzögert wird.

okay, jetzt weiß ich wie's gemeint war und stimme dir zu.

Gruß Tommy
 
Hallo,
ich will auch mal meine Senf dazugeben :
Normalerweise hält ja der Ablauf ( oder Schrittkette ) an wenn Zustände fehlen.
Somit steht die Anlage und es kann eigentlich nichts passieren.
Hat man mal eine Schwergängigkeit oder es war etwas im Weg und es läuft wieder ist alles gut.

Hier kann man sich nun streiten ob man Quittieren will / muß oder nicht.

Grundsätzlich fragen wir Zylinderbewegungen ( 5/2 ) so ab :

Zeichnung1.png

Mit der Störung lässt Du einen Timer laufen nach dessen Zeit dann die Meldung kommt und den Taktmerker
viellcieht auch noch anhält.
Hat man Zylinder mit extrem unterscheidlichen Laufzeiten gibts halt mehrere Timer.

Bei 5/3 angesteuerten Zylinder muß man sich halt das zusammenstellen.

Gruß olmuk
 
Hallo,
ich will auch mal meine Senf dazugeben :
Normalerweise hält ja der Ablauf ( oder Schrittkette ) an wenn Zustände fehlen.
Somit steht die Anlage und es kann eigentlich nichts passieren.
Gruß olmuk

Das ist der Fall ja! ;)
Dementprechend muss der Bediener sowieso die Schutztür öffnen und nachschauen wo dann natürlich eine hilfreiche Meldung am Panel die Suche beschleunigt. Ich hab mir sagen lassen, Zeit ist Geld...:ROFLMAO:
Warnungen machen bei mir wirklich keinen Sinn!

Gruß Tommy
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es kommt noch eines hinzu : Du solltest Dir eine Strategie überlegen wie Du mit einer Störung umgehst. Die Anzeige und Quittierung ist eine Sache.
Aber was ist mit unfertig montierten oder geprüften Teilen.
Noch schlimmer : ein Rundtisch den ich leerfegten muss. Und wie komme ich an den Zustand zurück der mir die Störung erzeugt hat. Das sind die Aufwände an Software einer Maschine die es teuer machen und am besten von Anfang an bedacht sein sollten. Tritt das im Bereich der Abnahme oder sogar später in der Produktion auf, sind die Betreiber sauer und fordern " dann musste halt rücksetzen usw". Habe da leider viel Lehrgeld bezahlt, deswegen die Anmerkungen. Viele Maschinen werden mit Ein und Ausschalten wieder in Anfangszustände rückgesetzt und die Serviceleute müssen Hellseher Ausbildungen machen.
Gruss olmuk
 
Hallo Tommy 843
ich hab dir hier mal einen Baustein reingeschrieben der die Steuerspannung abfragt und mit ACK quittiert wird. Das ganze kann auch noch auf eine Horn geschaltet werden.


FUNCTION_BLOCK "FB_BIN_FLT_1_DLY"
TITLE =BINARY FAULT
AUTHOR :
FAMILY : CONTROL
NAME : FLT_CTRL
VERSION : 3.0


VAR_INPUT
IN : BOOL ; //BINARY SIGNAL; 0=FAULT
RESTART : BOOL ; //RESTART BINARY SIGNAL
HORN_OFF : BOOL ; //HORN OFF BUTTON
CTRL_VLT : BOOL ; //CONTROL VOLTAGE IS OK
TIM_DLY : INT ; //TIMER FOR DELAY BINARY INPUT SIGNAL
END_VAR
VAR_OUTPUT
FLT : BOOL ; //FAULT
HORN_ON : BOOL ; //HORN ON
RDY_RST : BOOL ; //BINARY SIGNAL IS READY TO RESTART
END_VAR
VAR_IN_OUT
BIN_FLT_1 : "UDT_BIN_FLT_1";
END_VAR
VAR
TI_VAL_DLY : INT ; //TIMER VALUE FOR TIMER "TIM_DLY"
IN_TI : BOOL ; //INPUT SIGNAL DELAYED
END_VAR
BEGIN
NETWORK
TITLE =COUNT UP TIMER FOR INPUT SIGNAL

UN #IN;
= L 0.0;
U L 0.0;
U "f_PULSE_1_SEC";
U( ;
L #TI_VAL_DLY;
L #TIM_DLY;
<I ;
) ;
SPBNB _001;
L #TI_VAL_DLY;
L 1;
+I ;
T #TI_VAL_DLY;
_001: NOP 0;
U L 0.0;
NOT ;
SPBNB _002;
L 0;
T #TI_VAL_DLY;
_002: NOP 0;
U L 0.0;
U( ;
L #TI_VAL_DLY;
L #TIM_DLY;
>=I ;
) ;
= #IN_TI;
NETWORK
TITLE =FAULT SIGNAL

U( ;
U #RESTART;
U #BIN_FLT_1.RST_EN;
O ;
U #IN;
UN #BIN_FLT_1.RST_EN;
) ;
U #BIN_FLT_1.ACKN_FLAG;
R #FLT;
U #IN_TI;
UN #IN;
U #CTRL_VLT;
S #FLT;
NOP 0;
NETWORK
TITLE =HORN ON

U #FLT;
= L 0.0;
U L 0.0;
U( ;
O #HORN_OFF;
ON #BIN_FLT_1.HORN_EN;
) ;
S #BIN_FLT_1.ACKN_FLAG;
UN #FLT;
R #BIN_FLT_1.ACKN_FLAG;
NOP 0;
U L 0.0;
UN #BIN_FLT_1.ACKN_FLAG;
= #HORN_ON;
NETWORK
TITLE =READY TO RESTART

U #FLT;
U #IN;
U #BIN_FLT_1.ACKN_FLAG;
U #BIN_FLT_1.RST_EN;
= #RDY_RST;
NETWORK
TITLE =BINARY SIGNAL STATUS WITHOUT DELAY

UN #IN;
U #CTRL_VLT;
= #BIN_FLT_1.STAT_WO_DLY;
NETWORK
TITLE =BINARY SIGNAL STATUS WITH DELAY

U #IN_TI;
U #CTRL_VLT;
= #BIN_FLT_1.STAT_WITH_DLY;
NETWORK
TITLE =BINARY SIGNAL STATUS FAULT

U #FLT;
= #BIN_FLT_1.STAT_FLT;
END_FUNCTION_BLOCK
 
Oh, na da war jetzt aber jemand fleißig :shock:...
Ich weiß zwar nicht wie ich zu der Ehre komme, aber vielen Dank! Schade das es keine SCL-Quelle ist.

Ich habe jetzt leider feststellen müssen, dass mein OP keine Skripte verarbeiten kann. :-(
Ich habe dass das letzte mal über eine Meldeanzeige gemacht wo ich aber nur den Zustand einer Variable überwacht hatte. Jetzt sind aber mindestens 2 Variablen für die Meldung verantwortlich. Leider fehlt mir gerade der entscheidende Denkanstoß für die Verwirklichung. Ich mein, das Signal für die Meldung bekomme ich locker hin, da würde ich ein kleines SCL Programm schreiben und mir für eine Meldung jeweils eine Variable ausgeben. Aber wie bekomme ich dann den Text aus dem Datenbaustein auf die Anzeige. Habe ich bisher so noch nicht gemacht. Hat jemand einen kleinen Anstoß für mich?

Gruß
Tommy
 

Similar threads

Zurück
Oben