- Beiträge
- 15.438
- Reaktionspunkte
- 4.053
Anhang anzeigen 34182
... ich kann jetzt (egal ob Funktionsbaustein, Beobachtunstabelle, Kurvenscheibeneditor, ...) aus dem Framework rausziehen und beliebig anordnen.
Für mich ein wichtiges / das wichtigste Feature bzgl. Usability - also auch bildschirmübergreifendes Arbeiten.
Oh FB Arrays gehen jetzt. Cool
bitte mal im ganzen satz, was meinst du?
bitte mal im ganzen satz, was meinst du?
Wenn man jetzt noch für den Index eine Konstante einsetzt, kann man sogar symbolisch auf ein Array zugreifen.
Guten Morgen,
Instanzen als Array einfügen ging doch in Step7 5.5 schon.
Wir haben dann auch mittels Konstanten durchindexiert ( also nicht Variable[1] sondern Variable[Indexvariable] )
Ging das in TIA V13 nicht mehr ?
Und wieder eine Möglichkeit mehr, SPS-Programme crashfreundlich zu schreiben, ohne daß ein Compiler dazwischenfunktOh FB Arrays gehen jetzt. Cool
Da man Array-Elementen keinen Kommentar geben kann, ist das wohl die einzige Krücke, wie man ein Programm mit FB-Arrays halbwegs verständlich halten kann.Wenn man jetzt noch für den Index eine Konstante einsetzt, kann man sogar symbolisch auf ein Array zugreifen.
AngsthaseFür etwas "komplexes" wie einen Motor-FB würde ich sowas nie verwenden, bei Codesys ....
Und wieder eine Möglichkeit mehr, SPS-Programme crashfreundlich zu schreiben, ohne daß ein Compiler dazwischenfunkt
Wenn Du indirekt/indiziert auf eine nicht existierende FB-Array-Instanz zugreifst, dann merkt das das SPS-Programm erst zur Laufzeit. Ein Compiler kann Dich nicht warnen.Ich würd sagen das ist sehr crashsicher.
Das kann Dir aber genauso beim Bezug auf die Instanzen passieren, vor allem, wenn die Instanzen keine "sprechenden" Namen mehr haben.Und ich hab mich bei den Instanzaufrufen nicht nur einmal im Namen der Instanz vertippt und aus versehen eine Instanz der 200 Stück zweimal aufgerufen und eine keinmal. Das passiert dir in der Arrayabarbeitung nicht.
Dafür ist nun vermutlich die erzeugte Codegröße und die Zykluszeit dreimal so groß.Der Baustein ist dann in Echt nur noch 10 Zeilen lang und macht exakt dasselbe wie der Baustein der vorher 2000 Zeilen lang war.
Wenn Du indirekt/indiziert auf eine nicht existierende FB-Array-Instanz zugreifst, dann merkt das das SPS-Programm erst zur Laufzeit. Ein Compiler kann Dich nicht warnen.
Das kann Dir aber genauso beim Bezug auf die Instanzen passieren, vor allem, wenn die Instanzen keine "sprechenden" Namen mehr haben.
Dafür ist nun vermutlich die erzeugte Codegröße und die Zykluszeit dreimal so groß.
CALL #Klp01
LS_PAR :="LRU_N_KLP".ABL[1]
AumaIN :="Nord_RU_KLP_LST->AS".Ab[1]
WD :="AS Röhre Nord"._DBX_1012_5
Global_BF_Bedienart:="AS Röhre Nord"._DBW_22_0
Gesamt_Oeffnung :=#Gesamt_Oeffnung_Z1
Venti_An :=#VentiZone1
Venti_Klein :=
AumaOut :="Nord_RU_KLP_AS->LST".AbL[1]
Tuere :=
Klp_Fahr :="Brandarrays".Klp[1]
Zonen_Oeffnung :=#Zonen_Oeffnung_Z1
Tuere_Bedienart :="LRU_N_KLP".Tuere[1].BA
CALL #Klp02
LS_PAR :="LRU_N_KLP".ABL[2]
AumaIN :="Nord_RU_KLP_LST->AS".Ab[2]
WD :="AS Röhre Nord"._DBX_1012_5
Global_BF_Bedienart:="AS Röhre Nord"._DBW_22_0
Gesamt_Oeffnung :=#Gesamt_Oeffnung_Z1
Venti_An :=#VentiZone1
Venti_Klein :=
AumaOut :="Nord_RU_KLP_AS->LST".AbL[2]
Tuere :=
Klp_Fahr :="Brandarrays".Klp[2]
Zonen_Oeffnung :=#Zonen_Oeffnung_Z1
Tuere_Bedienart :="LRU_N_KLP".Tuere[2].BA
CALL #Klp03
LS_PAR :="LRU_N_KLP".ABL[3]
AumaIN :="Nord_RU_KLP_LST->AS".Ab[3]
WD :="AS Röhre Nord"._DBX_1012_5
Global_BF_Bedienart:="AS Röhre Nord"._DBW_22_0
Gesamt_Oeffnung :=#Gesamt_Oeffnung_Z1
Venti_An :=#VentiZone1
Venti_Klein :=
AumaOut :="Nord_RU_KLP_AS->LST".AbL[3]
Tuere :=
Klp_Fahr :="Brandarrays".Klp[3]
Zonen_Oeffnung :=#Zonen_Oeffnung_Z1
Tuere_Bedienart :="LRU_N_KLP".Tuere[3].BA
For #index 1 to 200 do
CALL #Klp[index]
LS_PAR :="LRU_N_KLP".ABL[index]
AumaIN :="Nord_RU_KLP_LST->AS".Ab[index]
WD :="AS Röhre Nord"._DBX_1012_5
Global_BF_Bedienart:="AS Röhre Nord"._DBW_22_0
Gesamt_Oeffnung :=#Gesamt_Oeffnung_Z1
Venti_An :=#VentiZone1
Venti_Klein :=
AumaOut :="Nord_RU_KLP_AS->LST".AbL[index]
Tuere :=
Klp_Fahr :="Brandarrays".Klp[index]
Zonen_Oeffnung :=#Zonen_Oeffnung_Z1
Tuere_Bedienart :="LRU_N_KLP".Tuere[index].BA
end_for;
Wie versorgst Du die FB-Array-Instanzen mit Übergabeparametern? Die müssten dann ja wohl auch alle als Array vorliegen?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?