*
CALL FB1, DB1
Wozu dieser Programmteil? Beide Merker werden im Programm recht häufig abgefragt.
Wenn ich jetzt aber ein vorhandenes Programm habe, bei dem ein FB mit statischen Lokaldaten vorhanden ist, wie finde ich den dazu gehörigen DB heraus, ohne alle programmierten DB´s einzeln aufrufen zu müssen?
Hallo zusammen,
durch Zufall bin ich auf dieses Forum gestoßen, und muß vorneweg gleich mal sagen: Hut ab, schön das es sowas gibt!:s18:
Da ich mich schon seit geraumer Zeit beruflich mit SPS´en verschiedener Hersteller beschäftige, tauchen natürlich auch immer mal wieder Fragen auf, von denen ich hoffe, diese hier beantwortet zu bekommen (...aber ich bin zuversichtlich...).
Da bei meinem Brötchengeber zwischenzeitlich fast alle alten Steuerung auf die Simatic S7 umgebaut worden sind, besuche ich derzeit in unregelmäßigen Abständen Schulungen in München, und versuche natürlich auch, das erlernte Wissen sofort in die Tat umzusetzen.
Dabei haben sich schon (momentan!) zwei Fragen aufgeworfen, die ich hier mal loswerden will.
Frage 1:
Bei einer unserer Umfangreichen Steuerungen habe ich im OB1 eine Programmierung entdeckt, aus der ich nicht schlau werde. Diese lautet:
Netzwerküberschrift "Eins- und Nullmerker"
U M 0.0
R M 0.0
(Kommentar dazu "Logisch 0")
UN M 0.1
S M 0.1
(Kommentar dazu "Logisch 1")
Wozu dieser Programmteil? Beide Merker werden im Programm recht häufig abgefragt.
Zweite Frage:
Wenn ich einen FB programmiere, werden die statischen Lokaldaten in einen Instanz-Datenbaustein geschrieben, den ich nach der Erstellung des FB erstelle, und dem FB zuweise.
Wenn ich jetzt aber ein vorhandenes Programm habe, bei dem ein FB mit statischen Lokaldaten vorhanden ist, wie finde ich den dazu gehörigen DB heraus, ohne alle programmierten DB´s einzeln aufrufen zu müssen?
Danke schon mal für´s antworten,
der Andi
Verdammt, zu langsam!
Das mit dem Testbetrieb war ja nur ein Beispiel. Manchmal braucht man auch mal eine logische 1 bzw. 0 im normalen Programmablauf.Hallo,
vielen Dank für die schnellen Antworten. Die Sache mit den Merkern ist mir jetzt klar, allerdings ist es komisch, daß diese beiden Merker im ganz normalen Programmablauf zum Einsatz kommen, und anscheinden nicht nur für den Testbetrieb.
...
Hallo,
vielen Dank für die schnellen Antworten. Die Sache mit den Merkern ist mir jetzt klar, allerdings ist es komisch, daß diese beiden Merker im ganz normalen Programmablauf zum Einsatz kommen, und anscheinden nicht nur für den Testbetrieb.
Bei einer unserer Umfangreichen Steuerungen habe ich im OB1 eine Programmierung entdeckt, aus der ich nicht schlau werde. Diese lautet:
Netzwerküberschrift "Eins- und Nullmerker"
U M 0.0
R M 0.0
(Kommentar dazu "Logisch 0")
UN M 0.1
S M 0.1
(Kommentar dazu "Logisch 1")
Wozu dieser Programmteil? Beide Merker werden im Programm recht häufig abgefragt.
diese Art der Programmierung stammt noch aus S5-Zeiten, wo es die Befehle
SET und CLR noch nicht gab.
Grüße
Gebs
Ich möchte also über irgendeine einfache Funktion genau diese Information beziehen können, nur ich weiß nicht wie. Wenn also jemand eine Idee hat, bitte hier posten.
wobei SET und CLR bei der inbetriebnahme echt schwer wieder zu finden sind
Wenn ich jetzt aber ein vorhandenes Programm habe, bei dem ein FB mit statischen Lokaldaten vorhanden ist, wie finde ich den dazu gehörigen DB heraus, ohne alle programmierten DB´s einzeln aufrufen zu müssen?
Im Bausteine-Ordner gibt es eine Spalte "Typ", da steht bei jedem DB, ob er ein normaler Global-Datenbaustein ist oder ein "Instanzdatenbaustein zu FB xx". Hier kann man sehr schnell alle Instanz-DB zu einem FB finden.Naiv wie ich bin dachte ich, ich mache einfach auf den entsprechenden FB einen rechten Mausklick, und in einem Auswahlfenster kann ich mir den zum FB gehörigen DB suchen, doch das geht natürlich nicht!
Ich möchte also über irgendeine einfache Funktion genau diese Information beziehen können
Im Bausteine-Ordner gibt es eine Spalte "Typ", da steht bei jedem DB, ob er ein normaler Global-Datenbaustein ist oder ein "Instanzdatenbaustein zu FB xx". Hier kann man sehr schnell alle Instanz-DB zu einem FB finden.
Der Wunsch, den zum FB gehörenden Instanz-DB zu finden, deutet darauf hin, dass Du das Prinzip der Instanz noch nicht verstanden hast, Sorry.Naiv wie ich bin dachte ich, ich mache einfach auf den entsprechenden FB einen rechten Mausklick, und in einem Auswahlfenster kann ich mir den zum FB gehörigen DB suchen, doch das geht natürlich nicht!
Wie bereits oben erwähnt bin ich erst dabei, mir über Schulungen Wissen über die Simatic S7 anzueignen, und wie Du bestimmt auch gelesen hast, war das Thema Mulitinstanzen eben bei meiner ersten Schulung noch nicht dabei. Du brauchst Dich deshalb auch nicht entschuldigen, denn Du hast recht: Das Prizip habe ich noch nicht verinnerlicht, aber ich denke, ich bin auf einem guten Weg!Der Wunsch, den zum FB gehörenden Instanz-DB zu finden, deutet darauf hin, dass Du das Prinzip der Instanz noch nicht verstanden hast, Sorry.
Momentan bin ich gerade dabei, einen Programmfehler zu suchen. Um diesen zu finden muß ich erst mal das Programm vestehen, daß der Anlagenprogrammieren geschrieben hat. Um dieses tun zu können muß ich im "Fehlerfall" die Zustände verschiedener Lokaldaten wissen, um zu sehen, warum dieser Fehler auftritt. Um diese Daten abrufen zu können, muß ich Einblick in den dem FB zugehörigen Daten im DB haben.Es ist ja gerade das besondere an einen FB, dass er statische Variable hat, das bedeutet aber natürlich auch, dass es bei mehrmaligem Aufruf des gleichen FB mehrere Sätze dieser statischen Vaiablen gibt, eben die Instanzen.
Es kann also auch mal viele Instanzen eines FB geben, das können jeweils einzelne DBs sein oder auch Bereiche einer Multiinstanz.
Wozu willst Du eigentlich wissen, wo die Instanzen Deiner Bausteine sind?
Es ist vielleicht mal interessant, einen Instanz-DB auzusehen, aber eigentlich sollte es beim Programmieren nicht erforderlich sein, zu wissen wo die Instanz ist, außer beim Aufruf selbst natürlich, aber da siehst Du es ja direkt.
Gruß
Erich
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?