Mr.Munshun
Level-1
- Beiträge
- 5
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
nachdem ich hier schon einige Themen zu meinem Problem gelesen habe (die mir nicht wirklich geholfen haben), habe ich mich entschlossen ein neues Thema aufzumachen. Sicherlich wird der Ein oder Andere jetzt denken: "Oh nein, nicht schon wieder diese Frage!".
Aber ich komme da einfach nicht weiter...
Nun mein Problem:
Ich habe einen FB erstellt, der den Status von Ventilen (es sind 12 Stück) erfassen und dementsprechend verarbeiten soll.
Funktionieren tut das ganze so, das als allererstes geprüft wird, ob alle Bedingungen gegeben sind um das Ventil X einschalten zu können.
Das heißt, ich habe von Außen alle Ventile angeknüpft die nicht zusammen mit Ventil X angesteuert sein dürfen und einmal alle die mit Ventil X eingeschaltet sein müssen (diese Konfiguration ändert sich je nach Programmschritt). Wenn eine der Bedingungen nicht erfüllt ist, geht die Anlage in Störung und gibt diese über die Ausgänge des FB's aus. Stimmt alles wird über die Ausgänge des FB´s das Ventil X und die dazugehörige Meldeleuchte eingeschaltet.
Ist das Ventil X eingeschaltet, so läuft auf dem FB eine Rückmeldung auf. Diese dient dazu, einen eventuellen Fehler des Ventil X selbst festzustellen.
Genau diese Rückmeldung ist mein Sorgenkind. Als ich den FB mit nur einem Ventil getestet hatte, lief alles genau so wie es vorgesehen ist.
Kaum hatte ich das 2. Ventil mit eingebunden um zu Testen ob der FB auch nach einem Mehrfachaufruf seinen Dienst tut, gab es Probleme.
Alles läuft so wie es soll, nur die Rückmeldung der Ventile wird irgendwie als ein Signal angenommen.
Heißt, wenn ich Ventil 1 im Betrieb "abschalte"; passiert gar nichts. Die Anlage sollte dann aber in Störung gehen und das dafür verantwortliche Ventil durch Blinken seiner Meldeleuchte kenntlich machen. Erst wenn ich das 2. Ventil deaktiviere geht die Anlage in Störung und lässt die Meldeleuchten beider Ventile blinken. Wie schon vermutet deutet das ja darauf hinn, das die Rückmeldungen nicht unabhängig von einander gesehen werden.
Zur Beschaltung und Konfiguration des FB´s, jedes Ventil hat diesen FB, Eingänge und Ausgänge sind für jedes Ventil anders.
Die einzigen Beschaltungen die die FB´s gemeinsam haben sind ein Taktmerker, so wie Störungsquittierung etc. .
Intern habe ich den Ein- und Ausgängen ihre dementsprechenden Variablen zugewiesen.
Als "Merker" für die interne Kommunikation unter den Netzwerken habe ich die Variable VAR S, Typ BOOL , Anfangswert false benutzt. Jeder FB (Aufruf) hat seinen eigenen DB mit dem er auch im OB1 aufgerufen ist (Jeder Aufruf des FB findet in einem anderen FC statt, da ich jedem Ventil einen spendiert habe).
Ich verstehe nun wirklich nicht was da los ist.
Meine Vermutung wäre ja, das ich entweder etwas mit den Variablen falsch gemacht habe, oder aber mit dem Mehrfachaufruf.
Ich habe mich auch schon an der Multiinztanz versucht, da ich aber nichts brauchbares (eine vernünftige Anleitung) gefunden habe, habe ich den Versuch wieder verworfen. Dazu sollte vieleicht noch gesagt sein, das ich kein Profi in der SPS-Programmierung bin.
Ach ja, arbeiten tue ich in diesem Fall mit WinPLC7, SPS ist eine VIPA Speed 7 CPU 314 SE.
nachdem ich hier schon einige Themen zu meinem Problem gelesen habe (die mir nicht wirklich geholfen haben), habe ich mich entschlossen ein neues Thema aufzumachen. Sicherlich wird der Ein oder Andere jetzt denken: "Oh nein, nicht schon wieder diese Frage!".
Aber ich komme da einfach nicht weiter...
Nun mein Problem:
Ich habe einen FB erstellt, der den Status von Ventilen (es sind 12 Stück) erfassen und dementsprechend verarbeiten soll.
Funktionieren tut das ganze so, das als allererstes geprüft wird, ob alle Bedingungen gegeben sind um das Ventil X einschalten zu können.
Das heißt, ich habe von Außen alle Ventile angeknüpft die nicht zusammen mit Ventil X angesteuert sein dürfen und einmal alle die mit Ventil X eingeschaltet sein müssen (diese Konfiguration ändert sich je nach Programmschritt). Wenn eine der Bedingungen nicht erfüllt ist, geht die Anlage in Störung und gibt diese über die Ausgänge des FB's aus. Stimmt alles wird über die Ausgänge des FB´s das Ventil X und die dazugehörige Meldeleuchte eingeschaltet.
Ist das Ventil X eingeschaltet, so läuft auf dem FB eine Rückmeldung auf. Diese dient dazu, einen eventuellen Fehler des Ventil X selbst festzustellen.
Genau diese Rückmeldung ist mein Sorgenkind. Als ich den FB mit nur einem Ventil getestet hatte, lief alles genau so wie es vorgesehen ist.
Kaum hatte ich das 2. Ventil mit eingebunden um zu Testen ob der FB auch nach einem Mehrfachaufruf seinen Dienst tut, gab es Probleme.
Alles läuft so wie es soll, nur die Rückmeldung der Ventile wird irgendwie als ein Signal angenommen.
Heißt, wenn ich Ventil 1 im Betrieb "abschalte"; passiert gar nichts. Die Anlage sollte dann aber in Störung gehen und das dafür verantwortliche Ventil durch Blinken seiner Meldeleuchte kenntlich machen. Erst wenn ich das 2. Ventil deaktiviere geht die Anlage in Störung und lässt die Meldeleuchten beider Ventile blinken. Wie schon vermutet deutet das ja darauf hinn, das die Rückmeldungen nicht unabhängig von einander gesehen werden.
Zur Beschaltung und Konfiguration des FB´s, jedes Ventil hat diesen FB, Eingänge und Ausgänge sind für jedes Ventil anders.
Die einzigen Beschaltungen die die FB´s gemeinsam haben sind ein Taktmerker, so wie Störungsquittierung etc. .
Intern habe ich den Ein- und Ausgängen ihre dementsprechenden Variablen zugewiesen.
Als "Merker" für die interne Kommunikation unter den Netzwerken habe ich die Variable VAR S, Typ BOOL , Anfangswert false benutzt. Jeder FB (Aufruf) hat seinen eigenen DB mit dem er auch im OB1 aufgerufen ist (Jeder Aufruf des FB findet in einem anderen FC statt, da ich jedem Ventil einen spendiert habe).
Ich verstehe nun wirklich nicht was da los ist.
Meine Vermutung wäre ja, das ich entweder etwas mit den Variablen falsch gemacht habe, oder aber mit dem Mehrfachaufruf.
Ich habe mich auch schon an der Multiinztanz versucht, da ich aber nichts brauchbares (eine vernünftige Anleitung) gefunden habe, habe ich den Versuch wieder verworfen. Dazu sollte vieleicht noch gesagt sein, das ich kein Profi in der SPS-Programmierung bin.
Ach ja, arbeiten tue ich in diesem Fall mit WinPLC7, SPS ist eine VIPA Speed 7 CPU 314 SE.
Zuletzt bearbeitet: