Hilfe zu FB Bausteinen

78tiom

Level-1
Beiträge
36
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo! :)
Habe einen Funktionierenden FB geschrienen.
Dieser Baustein läuft für sich auch super.
Rufe in im FC1 auf mit dem dazugehörigen DB1. Ich bennötige die Funktin des FB mehrmals.
Aber wenn ich den FB das zweite mal Benutze mit DB2 läuft er nicht mehr sauber.
Die Ausgänge vom FB1 werden sowol bei FB1 DB1 und auch am FB1 DB2 ??
Habe schon versucht FB1 zu kopieren und als FB2 einzufügen, habe aber das gleiche Ergebniss. m.f.G.

Danke schon mal für eure Hilfe
 
Hallo

was bedeutet läuft nicht mehr richtig sauber?

Wenn du den FB1 beobachtest wirst du nicht die Zustände im DB angezeigt bekommen. Dazu musst du den jeweiligen DB beobachten!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Nicht mehr Richtig bedeutet!
beim ersten Aufruf des FB habe ich z.b. 2 Eingänge E0.0 und E0.1 und A0.0
Beim zweiten Aufruf Verwände ich den E0.2 und E0.3 und A0.1
nun ist es aber so das beide Ausgänge A0.0 und A0.1 gesetzt werden ??

m.f.G
 
Schau dir den DB an und da genau das Bit was du mit der Operation E0.0
und E0.1 beschreibst.

z.B.: DB1.Dbx4.1
 
temp variablen haben ihre gültigkeit nur solange der dazugehörige baustein bearbeitet wird und nur einen zyklus lang.
statische behalten ihre werte.
brauch ich den wert im nächsten zyklus,oder wo anders nicht dann genügt meistens eine temp.sonst statische variablen
 
Das heißt, wenn ich einen FB dauerhaft bearbeite und eine Temp Variable nur einmal mit einer positiven Flanke setze, so ist die Temp Variable im nächsten Zyklus nicht gesetzt?
Auch wenn es ein RS oder SR Flip Flop ist?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auch wenn schon zum Teile beantwortet, war kurz Essen, daher noch im Anhang:

Die Temporären Variablen sind zwar eine schöne , aber auch böse Sache.
Diese sind nur innerhalb eines Bausteines und nur für diesen zyklus gültig.
Also kann man keine Flankenauswertung mit Temp's machen.

Jeder baustein hat einen bestimmten Bereich an maximalen Temp'.

Die Stat's werden im FB Kopf deklariert, und werden dadurch im Instanzdb abgelegt, und gesichert.

Bei den Temp's ist ganz wichtig, das diese am Anfang einen undefinierten Zustand haben. Habe ich z.B. ein Bool deklariert aber nicht zugewiesen, so kann es auf 1 und 0 stehen, je nachdem wie der Speicher vorher durch irgendwas beschrieben wurde. Genau hier liegt das Problem, das die Anlagen Stunden, Tage oder Jahre laufen können und plötzlich nicht mehr. Hab das gerade diese Woche in meinem Programm gehabt, durch kopieren aus einer anderen Anlage war eine Temp-Variable für Grundstellung angelegt und abgefragt worden. Beim kopieren hab ich die drin gelassen, da ich davon ausging das ich die brauche. Hab ich aber nicht, also blieb sporadisch mal eine Achse stehen, weil die temporäre variable mal auf 1 war mal nicht.

Diese Variablen sollen aber nicht verteufelt werden, man muss diese nur mit besonderer Sorgfalt bearbeiten. Eine weitere ganz ganz böse Falle:

Man hat einen Baustein, kopiert aus einem anderen baustein was rüber.
Wenn man jetzt z.B. in der Ansicht AWL war, kann eine Meldung kommen "Temporärer variablenbereiche belegt" (oder so ähnlich).
Hier kommt es zu Konflikten, da Step7 in KOP und Fup die Beschaltung über Temp's ausführt ohne diese zu deklarieren! Hier muss man unbedingt die Temp's kontrollieren.

Am bestens man verwendet die Temps immer nur in begrenzten Bereichen, so z.B. in einem Netzwerk , oder eins davor.

Im diesem Sinne, auch wenns schon beantwortet war.
 
Zurück
Oben