Schnittstellenproblem bei FB

bastler

Level-2
Beiträge
258
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ich habe einen FB erstellt, den ich mehrfach wieder aufrufen will.
In dem FB ist die Schnittstelle wie folgt parametriert:
Code:
-IN
   IN
-Out
   Out
-Stat
   Entprellzeit (SFB4)
   Entprellzeit2 (SFB5)
-Temp
   Mld_IN
   Mld_Out
   FL_Out
   FL_In
Die NW sehen wie folgt aus:
Code:
NW1
U     #IN
      =     L      1.0
      BLD   103
      CALL  #Entprellzeit
       IN:=L1.0
       PT:=T#4S
       Q :=
       ET:=

NW2
U     #Entprellzeit.Q
      =     #Mld_Out

NW3
U     #IN
      =     L      1.0
      BLD   103
      CALL  #Entprellzeit2
       IN:=L1.0
       PT:=T#2S
       Q :=
       ET:=

NW4
U     #Entprellzeit2.Q
      =     #Mld_In

NW5
U     #Mld_In
      FN    #Fl_In
      S     #Out
      U     #Mld_Out
      FP    #Fl_Out
      R     #Out
Wenn ich den FB beobachte wird #Out gesetzt und wir nicht rückgesetzt, weil die positive Flanke #Fl_Out nicht 1 wird, obwohl #Mld_Out 1 wird ist. Wo hab ich da einen Denkfehler?

Gruß
Computerpap
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ja, wenn man Glück hat. Ist eben ein undefinierter Zustand, der böse Auswirkungen haben kann :ROFLMAO:

wir sind doch sonnekinder aus dem schoße des glücks und unser leben findet auf dem ponyhof statt!
hippie-smile.gif


... ich wollt nur darauf hingewiesen haben, dass es keinen löschvorgang gibt!
 
Hallo
Das ging ja schnell, danke für die Antworten.
Mit Stat-Variablen gehts.
Jetzt hab ich noch ein zweites Problem.
Ich rufe den FB in einem FC 2x auf.

Code:
NW1
call FB2
   IN:=E0.0
   OUT:=M200.0

NW2
call FB2
   IN:=E0.1
   OUT:=M200.1
Wenn einer der beiden Eingängeauf 0 geht passiert nichts, erst wenn beide Eingänge auf 0 gehen, werden M200.0 und M200.1 gesetzt. Genauso umgekehrt, geht einer der beiden Eingänge auf 1 passiert nichts, erst wenn beide Eingänge wieder 1 sind, gehen die Merker wieder beide auf 0. Was mach ich denn da noch falsch?

Viele Grüße
bastler
 
kann ich denn einen FB in einem FC als Multiinstanz aufrufen? Wenn ja wie?
Wenn ich den FB in einen anderen FB als Multiinstanz aufrufe habe ich das gleiche Phänomen mit den Merkern.


Gruß
bastler
 
Zuletzt bearbeitet:
FB im FB aufrufen, dann ist es eine Multiinstanz. in einem FC ist es einfach ein Bausteinaufruf, wo du einen eigenen IDB brauchst.

Und bei einer Multiinstanz nicht vergessen den Offset des AR2 hinzuzählen, sonst wird das nichts.

Merker haben meiner Meinung in einem FB rein gar nichts zu suchen-> mehrmaliges Aufrufen des selbigen, wird dann nicht funktionieren.
 
Zuletzt bearbeitet:
nicht das ich wüßte!
es findet KEIN aktiver löschvorgang statt!
der speicher wird nur wieder freigegeben und je nach programm eben neu beschrieben.
wenn man Glück hat, bleibt die flanke.

Was ja perse das gleiche ist, wie "wird gelöscht"! ... Das du recht hast, weiß ich! Aber wenn ich weiß das er "neu" ist, dann finde ich "low-level" (und er verstehts auf Anhieb) besser als fachlich korrekt und er "guckt wie Auto" (Ohne das ich dem Themenstarter Dummheit, o.ä. unterstellen will!! Ich hab auch "mal angefangen!")

Aber was AR2 ist, würde mich auch interessieren ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren

AR2 ist das zweite adressregister, welches von FBs zur adressierung der lokalen variablen benutzt wird.
sowohl das forum als auch die siemens-hilfe ist dazu sehr ausführlich und eindeutig...


zu dem anderen: ich habs lieber einen anfänger evtl. zu überfordern als ihm irgendwelche haldwahrheiten aufzutischen...
 
Sorry, aber ich muß nochmal nachhaken. Ich habe einen FB2 in dem der SFB4 und SFB5 als Multinstanz aufgerufen werden. Nun möchte ich im FB4 den FB2 als Multiinstanz aufrufen. Sobald ich den FB2 im FB4 ein zweites mal aufrufe, geht die SPS in Stop. Ich hatte mit sowas noch nie zu tun, deahalb bitte für einen Anfänger erklären.

Gruß bastler
 
Kannst Du vielleicht mal den Diagnosepuffer hier rein stellen?

Kann es sein, dass Du den (jetzt natürlich veränderten) Instanz-DB von Deinem FB4 noch nicht in die CPU übertragen hast, seit Du den zweiten Aufruf hinzugefügt hast?
 
Zuletzt bearbeitet:
Ich hab alle Bausteine nochmal komplett in die SPS übertragen, aber leider keine Veränderung.

Edit: Im OB1 war der Bausteinaufruf rot, den hab ich jetzt nochmal geschrieben und übertragen und jetzt gehts.
 
Zuletzt bearbeitet:
Zurück
Oben