Step 7 SCL Indirekte Adressierung von Multiinstanzen

BlueDogi

Level-1
Beiträge
48
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
Ich würde gerne den FB5 5mal aufrufen. Jedes Mal mit einem anderen Multiinstanz DB.
Mein Plan sah bisher so aus:

Code:
VAR
    
    VAR_FB5_0:FB5;
    VAR_FB5_1:FB5;
    VAR_FB5_2:FB5;
    VAR_FB5_3:FB5;
    VAR_FB5_4:FB5;
END_VAR

FOR loop_NR:=0 TO Number_of_Array BY 1 DO
VAR_FB5_[loop_NR](Req := Req  // IN: BOOL
             ,Addr :=Addr_Pointer  // IN: ANY
             ,Area :=Area  // IN: BYTE
             ,Unit :=Unit  // IN: BYTE
             ,Index1 :=Index1  // IN: INT
             ,Index2 :=Index2  // IN: INT
             ,CnvtToken :=CnvtToken  // IN: BOOL
             ,VarToken :=VarToken_Pointer  // IN: ANY
             ,RD :=RD_Pointer  // INOUT: ANY
             ); 
   Error:= VAR_FB5_[loop_NR].Error; // OUT: BOOL
   Done:= VAR_FB5_[loop_NR]Done; // OUT: BOOL
   State:= VAR_FB5_[loop_NR].State; // OUT: WORD
END_FOR;

Und ein Array of FB wird wohl auch nicht gehen. Wie gehe ich am besten Vor?
 
Vergiss es, das ist in der Siemens-Welt nicht vorgesehen. Das geht nur höchst undurchsichtig, da ist der Programmieraufwand größer als die 5 Aufrufe einfach sauber nacheinander hinzuschreiben.

Und welchen Sinn macht es, 5 Instanzen mit den selben Eingangswerten aufzurufen? ;)

Harald
 
Zurück
Oben