Beschaltung von FB'S (Array)

MatthiasH24

Level-1
Beiträge
132
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

habe mal eine Frage zur Beschlatung eines FB's. Habe einen eigenen Fb (SCL Quelle) geschrieben dieser hat 91 Eingänge vom Typ Array[0..31] of BOOL. Die dazugehörigen Werte (auch Arrays vom Typ [0..31] of Bool) liegen in einem Globalendatenbaustein.

Nun wollte ich den Fb beschalten, funktioniert auch soweit, nur ist es ein echter Krampf da Siemens oft die Variable nicht übernehmen will. das heißt ich brauche pro eingang min. 5 klicks bis er die variable geschluckt hat. ( und das nervt...)

Jetzt meine Frage an euch: Wie macht ihr das?
Adressierungs Art ist symbolisch z.B "P_Synoptik".Vertikal_023

Grüßle
 
Also für alle die mal ähnliche Probleme haben. Habe Unter Ansicht-> Anzeigen mit -> den haken bei Symbol auswahk rausgemacht und damit hat er es immer sofort kapiert.

Grüßle
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Matthias,
das habe ich nicht ganz verstanden ...
Bekommst du den Parameter nicht an den FB dran-programmiert oder übernimmt der FB die Werte aus der Parametrierung nicht ...?

Gruß
LL
 
Hi

also zur Vernschaulichung habe ich noch ein kleinen Ausschnitt vom Fb eingefügt. Es ging eigentlich nur darum das, ich weniger Zeit brauche um den Fb zu beschalten. Und das geht jetzt ohne Symbol Auswahl in dem Fall deutlich besser.
 

Anhänge

  • FB.jpg
    FB.jpg
    21,4 KB · Aufrufe: 51
91 eingänge? das ist, wie soll ich sagen, unübersichtlich! ... da brauch man nen ausdauernden zeigefinger um das zu scrollen ... gibts da nicht ne andere möglichkeit?
ein denkanstoß, da es so aussieht als würden die arrys alle im selben DB stehen: ein eingang für den DB und evtl. einen für die anzahl der arrays ... schlankes system :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ach so, ja, das hab ich auch abgeschalten, weil es mich nervte. War nur nicht darauf gekommen, daß du das meinst. Warum legst du alle Bits einzeln an und nicht die gesamte Struktur auf einmal, als eine Variable? Eine UDT bietet sich hier prima an.
 
Ok jetzt kommt es ja eher mehr um das Programm was dahinter steht.

Unübersichtlich ja und wie.. aber ich habe keine Ahnung wie ich das sonst machen soll.

@vierlagig wie meinst das mit ein Eingan für den DB? Es ist so das der DB "P_Synoptik" der Globale Datenbaustein ist in dem die anderen FBs ihre daten ablegen.

der Main-Baustein verwaltet die Daten vom P_Synoptik ( also der Bauetin mit den vielen Eingängen:) ) und schickt sie dann an die Visu
 
... was die beiden hier meinten :
Nicht jedes Array-Element einzeln an den FB parametrieren, sondern gleich das ganze ARRAY auf einmal als Parameter übergeben ...
Also statt 32 IN-Parameter vom Typ BOOL einen IN-Parameter vom Typ ARRAY[0..31] of BOOL.

Gruß
LL
 
Ist es nur so das der In Parameter schon ein typ vom Array[0..31] of Bool ist. Also kann ich die Arrays ja nicht mehr weiter zusammen fassen

Argh, ich dachte du schreibst jedes einzelne Bit da ran. Was 4L wohl meint, daß du z.Bsp. die DB-Nummer übergibst und das Startarray und die Anzahl der Arrays. Also je nachdem 2 oder 3 Parameter. Du könntest auch die Arrays nochmals zusammenfassen in einer übergeordneten Struktur, geht wie gesagt mit udt recht gut.
 
Ok das mit einem UDT muss ich mir mal noch anschauen. Komme aber wahrscheinlich heute nicht mehr dazu. Muss grad noch ein Makro Programmieren.

Denn es gilt : Schreibe Quellcode der Quellcode schreibt :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ist es nur so das der In Parameter schon ein typ vom Array[0..31] of Bool ist. Also kann ich die Arrays ja nicht mehr weiter zusammen fassen

... du hast also 91 IN-Parameter und jeder ist ein ARRAY[0.31] of BOOL ?
Holla-die-Waldfee ... :rolleyes:
Also in dem Fall schlage ich dir doch vor dem FB entweder einen UDT oder ggf. gleich einen (zusätzlichen) DB zu übergeben. Das würde die Angelegenheit dann auch "etwas" übersichtlicher machen.
Die von dir eingangs erwähnten Zeiten rühren dann vermutlich auch daher - über 90 Pointer-Parameter habe ich noch nie irgendwo dran-parametriert ... ;)

Gruß
LL
 
Zurück
Oben