Wertübergabe zw. FBs

... ich nehme mal an, dass die beiden FB's sonst nicht miteinander verbunden sind ... also FB2 wird nicht aus FB1 aufgerufen.
In dem Fall wäre die Profi-Lösung, die Schnittstelle der FB's zu benutzen - also wenn FB2 einen Wert an FB1 übergeben soll, dann ist der Wert ein OUT-Parameter bei FB2 und ein IN-Parameter bei FB1.

Gruß
LL
 
das ist doch bei FB sowieso so gedacht mit der Schnittstelle - wenn beide in dem selben übergeordneten baustein aufgerufen werden, dann sper dir die Merker und verwende gleich lokale variablen. Jedenfalls mir ist das sympathischer
 
das ist doch bei FB sowieso so gedacht mit der Schnittstelle - wenn beide in dem selben übergeordneten baustein aufgerufen werden, dann sper dir die Merker und verwende gleich lokale variablen. Jedenfalls mir ist das sympathischer

Wenn die Reihenfolge der Aufrufe mit OUT nach IN übereinstimmt, dann OK - sonst "böses Foul" - also bitte beachten ...
 
Mit den Merkern funktioniert das irgendwie sowieso nicht bei mir! Wenn ich bei FB2 den Merker M4.2 auf 1 setze, hat das irgendwie keine Auswirkung im FB1
(M4.2 zählt einen Zähler zurück)
Ich probiers mal mit den lokalen Variablen, also danke schonmal....
 
Mit den Merkern funktioniert das irgendwie sowieso nicht bei mir! Wenn ich bei FB2 den Merker M4.2 auf 1 setze, hat das irgendwie keine Auswirkung im FB1
(M4.2 zählt einen Zähler zurück)
Ich probiers mal mit den lokalen Variablen, also danke schonmal....

Wenn das mit Merkern nicht funktioniert, dann funktioniert es mit Lokalvariablen (TEMP) erst recht nicht ...
Wie wäre es mit ein paar mehr Info's an das Auditorium ?
 
Ich versuche ein Programm für einen "Pulkrollenförderer" zu schreiben!
Es gibt 2 Förderstrecken:
Am Ende der ersten Strecke ist ein Sensor, die die zweite Förderstrecke antreibt und den Inhalt an Fördergütern zählt! Auf der zweiten Förderstrecke dürfen nie mehr als 2 Fördergüter enthalten sein (ebenso wie auf den Folgenden)!
Wenn die zwei FG die Strecke verlassen, zählt der zweite Sensor den ersten wieder zurück, und diesen Wert will ich übergeben!
 
der aufruf des zweiten ist nach dem aufruf des zählers?

dann mußt du dein signal über einen zyklus retten, also z.b. setzen ... oder eben andersrum programmieren, vom ende zum anfang, ist bei förderstrecken sowieso meist sinnvoller...

zeig mal die aufrufe und kringel die signale ein, die übergeben werden sollen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
der aufruf des zweiten ist nach dem aufruf des zählers?

dann mußt du dein signal über einen zyklus retten, also z.b. setzen ... oder eben andersrum programmieren, vom ende zum anfang, ist bei förderstrecken sowieso meist sinnvoller...

zeig mal die aufrufe und kringel die signale ein, die übergeben werden sollen...

E0.1 vom FB2 soll an FB1 übergeben werden...
(Nf heißt Nachfolger, Vg Vorgänger..... vlt hab ich das Ganze mit den Variablen verhunzt :confused: )
 

Anhänge

  • fb1.pdf
    18,4 KB · Aufrufe: 51
  • fb2.pdf
    15,7 KB · Aufrufe: 26
Zuviel Werbung?
-> Hier kostenlos registrieren
muß nicht sein.
tausche die absolute adressierung gegen statische variablen und gut ist
Code:
[FONT=Courier][SIZE=1]
[LEFT][SIZE=3]U([/SIZE]
[SIZE=3]L #Zaehlerwert[/SIZE]
[SIZE=3]L 2[/SIZE]
[SIZE=3]==I[/SIZE]
[SIZE=3])[/SIZE][/LEFT]
[SIZE=3]= M 10.3[/SIZE]
[/SIZE][/FONT]

ist der zaehlwert jener wert den du vom fb2 brauchst??
 
Zuletzt bearbeitet:
du hast ja nur den wert vom zähler1 im fb1.wo bekommst du den wert von zähler2 her??überleg dir das mal.entweder über inout oder du nutzt die instanz.
aber wie vl schon gesagt hat finden das manche unsauber.
ich nutze die instanzen auch gelegentlich und hatte damit noch keine probleme.so jetzt kann man über mich herfallen. :p
 
Zuletzt bearbeitet:
aua! nicht tun! zeig mir nie wieder solche bausteine, da tut mir ja das programmiererherz weh!

wie gerhard und larry schon richtig sagten, dafür ist ein FB nicht da und ich füge hinzu: er fühlt sich dabei auch verarscht!

das zauberwort heißt kapselung. du erschaffst eine funktion, die du immer wieder verwenden kannst und nur von außen mit anderen übergabewerten versorgt wird. innerhalb der funktion arbeitest du nur mit dem, was dir von außen zur verfügung gestellt wird ... nich mal eben gucken, welcher globale merker da einen anderen wert hat - nein nein nein! entweder er kommt über die schnittstelle rein oder er hat dich nicht zu interessieren!

...aber irgendwie hatte ich schon sowas geahnt... noch viel lernen du mußt, junger krieger! :rolleyes:

@gerhard: solange ich deine instanzangreifenden programmteile nicht unter die finger bekomme, werd ich auch nicht über dich gerfallen, aber wenn ... ;)
 
Zurück
Oben