Bausteinpbergreifende Programmierung (FB´s)

trinkiwinki

Level-1
Beiträge
40
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,


habe da ein kleines Problem, welches ich über die Forensuche nicht klären kann. Falls es doch geht, dann Schande über mich :sm10:

Wir haben bei unseren Maschinen Programme, die mit FB`s wie unser Elektroschema aufgebaut sind.

Also z.B. der FB 15 beihnaltet alle Funktion der FUnktionsgruppe 15 im E-Schema. Nun brauche ich aber immer wieder Bits vom einen FB zum anderen FB, als Freigaben für Motorenstarts oder so....

Bis jetzt wurde das mit Merkern realisiert, was ja nun mehr und mehr aussterben soll. Mit STAT Varaiblen kann ich ja nur Bausteinintern arbeiten, und die Daten aus dem Instanz DB vom FB 15 im FB 19 zu verwenden ist doch auch nicht so gut, da wenn im FB 15 was in der Deklaration zwischen rein gefügt wird stimmt der Opearand nimmer......

Bleibt da nur der WEG über einen DB, d.h. alle wichtigen Dinge wie Freigaben anstatt in einen Merker in einen DB zu schreiben?

Evtl. versteht mich jemand......

Danke für eine Info eurerseits.

Marco
 
Hallo.
Ich nehme an, deine FB's werden in einem FC nacheinander aufgerufen oder so ähnlich.
Dann bietet sich
1. Möglichkeit an, im jeweiligen FB eine Variable #Freigabe im OUT-Bereich vom Typ Bool zu deklarieren, oder
2. Möglichkeit über das BIE-Bit den ENO des FB zu steuern.

Bei 1. könntest Du im aufrufenden FC mittels einer temp-Variable die Freigabe im ganzen FC benutzen
Bei 2. kannst Du die FB's hintereinanderschalten EN0 an EN usw.
(mit dem VKE vor einem SAVE steuerst du das BIE-Bit des ENO)
Gruß Approx
 
Zuletzt bearbeitet:
Du könntest auch einen festgelegten Bereich der STAT Variablen zur Kommunikation mit anderen Bausteinen nutzen. Im Prinzip ein STRUCT "Schnittstelle_FBXZY" dadrin zwei Structs "von" "an" und diese dann so verwenden. Nachteil ist, du muss bei Änderungen an der Schnittstelle gleich 2 FBs + IDBs anpassen, hast allerdings auch im Kommunikationspartner einen Überblick über die Werte.
Zum Daten kopieren könntest du am jeweiligen Baustein Ende die entsprechenden Daten beschreiben. Oder die noblere Variante einen FC schreiben der die Strukturen kopiert...
 
das mit den Funktionsgruppen in EPLAN und SPS machen wir auch so, ist eine saubere sache!


version 1: für die Funktionsgruppe gibt es einen FC mit einem zugehörigen DB in dem die Globalen Variablen der FG gehalten werden.

in dem FC werden dann für die einzelnen antriebe und ventile und das ganze gedöns entsprechende FBs mit ihren IDBs aufgerufen.

Ansich eine saubere Sache, der zur FG gehörende DB ist auch gleichzeitig die schnittstelle zur VISU. Die Structur diese DBs ist ein bisschen Standartisiert und bietet in den meisten fällen genug reserven.

Es gibt eben einzelnen Structuren mit Stausbytes (zb. 0:AUS/1:EIN/2:ERROR), Tastenbits, Stautsbits, Sollwerte in diversen zahlenformaten und istwerte in diversen formaten, dann noch wörter mit störungsbits,...


die erweiterte version unterscheidet sich eigentlich nur dadurch das der FG-FC durch einen FG-FB ersetzt wurde und die aufgerufenen FBs als Multiinstanzen dort eingebunden sind um die sache etwas schlanker zu halten...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ja! mit der richtigen disziplin und UDTen bekommt man ein sehr übersichtliches und schnelles programm zu stande ohne dabei an flexibilität einzubüßen. einfach mal selber probieren.

stimmt...
auf die performance wirkt sich das sicher super positiv aus!

aber wenn da halt einer drankommt der das nicht sofort sieht, dann steht über dessen kopf erst mal ein ganz großes fragezeichen. wobei das eigentlich auch nur eine frage der doku bzw. der kommentierung ist...

danke für den tip!
 
Zurück
Oben