Step 7 FB mit verschachtelten Multiinstanzen

wirehead

Level-2
Beiträge
72
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
hab mal wieder ein Problem:
In meinem Programm (Heizungssteuerung) rufe ich einen FB2 mit 2 IDBs auf, in diesem FB2 habe ich einen FB15 (im Bild "Taktgeber") als Multiinstanz aufgerufen, in diesem FB15 (http://www.goetz-automation.de/SPS/Takt_frei_einstellbar_FB15.htm) werden 2 IEC Timer als Multiinstanz aufgerufen.

Nun funktioniert das nicht.
Erst als ich den FB2 kopiert habe und in jedem einzelnen den FB15 mit jeweils eigenem IDB aufgerufen hab funktioniert es.

Kann man Multiinstanzen nicht so schachteln oder mache ich da generell etwas falsch?

ausschnitt.JPGAnbei noch ein Bild von der Deklaration von FB2

Gruß
 
Hallo,
ganz grundsätztlich sollte das funktionieren, was du da beschrieben hast.
Allerdings läßt sich da so eigentlich nichts dazu sagen. Wichtig wären der Code der jeweiligen Bausteine und ganz wichtig : was ist wo und wie deklariert ?
Wenn der FB15 allerdings mit eigenem I-DB korrekt funktioniert dann könnte der Fehler im FB15 sein, dass der (inne drin) nicht Multi-Instanzfähig erstellt wurde. Hast du davon auch den Code ?

Gruß
Larry
 
Wie Larry schrieb: Im Prinzip ja, kann funktionieren.
Aber es stellt sich wie meist, wenn man irgend woher etwas zusammen kopiert, die Frage:
Funktioniert das?
Es ist nach meiner Erfahrung absolut falsch etwas zusammen zu kopieren, wenn man es nicht selbst geschrieben bzw verstanden hat.
Wenn du für solch ein Programm Garantie leisten musst, viel Spaß.
Nimm Bausteine vom Lieferanten der Software, oder schreib es selbst.


bike
 
Bei den Temp-daten im FB "Mischerregler" ?
Hab da grade nochmal drübergeschaut, die werden eigentlich bei jedem Aufruf neu berechnet und geschrieben bevor sie gelesen werden, soweit ich das sehe.

Gruß
 
Hi!

Schau doch mal nach, ob dein FB2 als Multiinstanzfähig erstellt wurde.

Danach dann bitte mal einen Aufruf löschen und testen ob die Funktion dann normal ist.

Gruß,

Ottmar
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich tippe hier darauf, dass irgendwo mit Pointer-Adressierung gearbeitet wird und es aber vergessen worden ist, hier (um MI-fähig zu werden) den Inhalt des AR2-Registers zu addieren ...

Gruß
Larry
 
Hi,
im betreffenden FB manipuliere ich AR2 nicht selbst, zumindest nicht wissentlich.
Ich hab jetzt im obigem Code die Temp-Daten alle als Stat deklariert. Soweit ich das online gesehen hab wurde zwar der Taktgeber aufgerufen aber auf die Temp-Variable am Ausgang erfolgte keine Zuweisung. in der Simulation funktioniert es jetzt. Obwohl mir noch nicht ganz klar ist warum... Hab es aber noch nicht in der CPU getestet.
 
Zurück
Oben