Step 7 Variablen / Schnittstelle in der Step7 Software

Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sag ja: Wahnsinn wie schnell man aus einer Sache "rauskommt" wenn man sie eine Zeitlang nicht benutzt.

ja. das ist so. ich muss hier von s5 bis tia alles bedienen. die fremd-sps (andere hersteller) lass ich jetzt mal aussen vor.
aber wenn man mal (früher) länger damit gearbeitet hat kommt man auch einingermaßen schnell wieder rein.
aber meine meinung heirzu ist auch nicht gegenstand diese threads
 
Hallo

Danke ich habs gestern mal so testen können mit Multiinstanz...Im Fb1 eine IN OUT erstellt Logik dazu erstellt dann im FB2 unter STAT den Namen eingetragen Tempertaurmessung_1 Datentyp FB1...

Konnte dann unter Multiinstanz auswählen einfügen und MIT DB1 bezeichnen alles OK...

Jetzt wollte ich den FB2 im OB1 aufrufen wenn ich dann Call FB1 oder Call Tempertaurmessung_1 eingebe dann wird die Schrift rot... was mach ich da falsch???

Danke
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Konnte dann unter Multiinstanz auswählen einfügen und MIT DB1 bezeichnen alles OK...
Glaube ich nicht. Wenn du dazu noch einen DB1 brauchst ist es ja EINZEL-Instanz





Jetzt wollte ich den FB2 im OB1 aufrufen wenn ich dann Call FB1 oder Call Tempertaurmessung_1 eingebe dann wird die Schrift rot... was mach ich da falsch???
Call Tempertaurmessung_1 geht nur wenn in dem Baustein, in dem der Aufruf erfolgt, oben im STAT Bereich ein Objekt
namens <Tempertaurmessung_1> existiert.

Mann, das ist aber schon eine schwere Geburt....
 
wenn du in den mulitinstanz fb den anderen fb aufrufen willst NICHT den FB reinziehen aus dem ordner wo die fb's liegen SONDERN aus dem Ordner Multiinstanzen.
oder
wenn du den fb reingezogen hast rechtsklick auf den baustein und dann ändern in multiinstanzaufruf. dort dann bei name der multiinstanz das nehmen was du im deklarationsteil als namen vergeben hast
 

Anhänge

  • multiinstanz.jpg
    multiinstanz.jpg
    267,6 KB · Aufrufe: 12
Zuletzt bearbeitet:
Noch ein Hinweis zu TEMP-Variablen:
TEMP-Variablen enthalten solange "Müll" bis sie einen Wert zugewiesen bekommen!
Also sicherstellen, daß sie beschrieben werden bevor sie gelesen werden.

Sonst gibt es mehr oder weniger lustige "Geistereffekte"!

PS: Der "Müll" ist das, was vom Aufruf des vorherigen FB/FC auf dem Stack liegengeblieben ist.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Ja das funktioniert alles habs alles so probiert....alles OK

Nur wenn ich jetzt im OB1 meinen FB3 aurufen möchte siehe Bild oder kann man das nicht??

BItte um etwas Nachsicht ich versuche es nur zuverstehen warum wieso welshalb...:?


Danke für eure Hilfe
 

Anhänge

  • Testmulti.jpg
    Testmulti.jpg
    187,2 KB · Aufrufe: 15
Du musst dem FB Aufruf noch einen Instanzdatenbaustein mitgeben:
CALL FB9, DB9 [Enter]

Jeder Funktionsbaustein benötigt einen Instanz-Datenbaustein oder eben eine entsprechende Deklaration im STAT-Bereich.
 
Da fehlt der zugeordnete Datenbaustein da KEINE Multinstanz:
Call FB3, DB3 //z.B.

Einzelinstanz:
Aufruf Call FBxx,DByy

Multiinstanz:
Instanz(en) definieren im STAT-Teil des aufrufenden FB
dann im Programmteil
call f_Name //f_name wie im STAT-Teil festgelegt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habs alles soweit geschaft danke...ich möchte es auch verstehen können...ab und zu dauert es halt:ROFLMAO:

Finde das Cool mit den Multiinstanze damit kann man sich Eingänge/Ausgänge Messeingänge-Tempfühler usw. eingene Bausteine bauen je nach bedarf was man eben benötigt...




Könnte man das auch alles in einen DB schreiben was ich jetzt über die Variablen/Schnittstellen gemacht habe und sozusagen keine Multiinstanz zuerstellen sondern alles in einen DB schreiben???

Oder hat das eine mit dem anderen nichts zutun...


Ich hoffe mich verständlich ausgedrückt zuhaben...:)
 
Zuletzt bearbeitet:
Step7 unterscheidet zwischen globalen DB und Instanz-DB.
Händisch anlegen kannst Du nur globale DB. Diese kannst Du aber nicht einem FB als Instanz zuweisen.
Die Struktur eines Instanz-DB legst Du in der Definition der Input/Output/Static Deines FB fest. Der/die Instanz-DB selber wird/werden erst bei Einbindung des FB ins Programm angelegt und ist/sind auch nur für diesen FB verwendbar.


Vorschlag: Bitte besorge Dir ein Buch wie z.B. Giesler: Simatic S7, wo die grundsätzlichen Dinge erklärt werden. Es gibt auch Webseiten, wo ähnliche grundsätzliche Inhalte online verfügbar sind. Auch Siemens bietet entsprechende Tutorials an.

Das Forum ist, glaube ich, nicht dazu da, Lehrgänge und Literatur zu ersetzen.
 
Finde das Cool mit den Multiinstanze damit kann man sich Eingänge/Ausgänge Messeingänge-Tempfühler usw. eingene Bausteine bauen je nach bedarf was man eben benötigt...
Naja, Bausteine zusammenbauen, mit genau den Funktionen die man benötigt, genau das ist ja das Prinzip der SPS
Mit Multiinstanz hat das eigentlich nichts zu tun.
 
Was ist dann eine Multiinstanz bzw wie kann man diese erklären...
Also nochmal...........
Jeder FB braucht einen IDB
Wenn der FB mehrfach aufgerufen wird braucht jeder Aufruf einen eigenen IDB
Bei einen großen Anlage können da ein paar hundert IDBs zusammenkommen.
Das wird dann unübersichtlich und früher konnte man da auch schon mal an die Grenzen des Mengengerüsts stoßen.
Deshalb Multiinstanz.
Die IDBs werden im STAT-Bereich eines übergeordneten FB abgelegt.
Weniger einzelne DBs => Bessere Übersicht
 
man kann einen FB auch ohne DB ausrufen

Code:
UC   FB3

ob das Sinn macht ist natürlich eine andere Frage

MfG Jan
 
Zuletzt bearbeitet:
Moin Gexle,

ich habe mir das einmal so gemerkt:

Die Variablen, die ich im Programm nutzen kann bestehen immer aus einer Beschreibung und einem Speicherplatz.
Dazu ein paar Gedanken (dabei beziehe ich mich auf DBs):

Beschreibungen:
- Deklaration im (global)DB
- Deklaration im Kopf eines FB
- Erstellung eines UDT

Jetzt müssen diese Beschreibungen mit einem Speicherbereich zusammengebracht werden:
- bei der Deklaration im globalen DB habe ich das schon direkt gemacht.
- bei der Deklaration im FB-Kopf muss ich den Speicherbereich noch zuweisen (der Instanz-DB)
- die UDT kann ich mit allen möglichen Speicherbereichen verknüpfen (global-DB, Deklaration im FB- oder FC-Kopf (IN, OUT, INOUT, STAT, TEMP), Merker, etc...)


VG

MFreiberger
 
Zurück
Oben