SCL: FB Aufruf unter SCL mit Variablen DB

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

haben deine aufzurufenden FC's Parameter? Dann ist das das Problem.

André

Nein, die haben keine Parameter.
Was muss ich tun, damit es funktioniert?

Edit:
Code:
myFC : BLOCK_FC    //hatte an der Stelle BLOCK_DB stehen 
myIndex : INT
 
L p##myFC
LAR1
L #myIndex
T W [AR1,p#0.0]
 
UC #myFC
Jetzt hab ich im OB1, wenn ich FC100 aufrufe die zwei Eingänge, myIndex ist klar (DB1.DBWx) was muss an myFC (erwartet : BLOCK_FC)?
 
Zuletzt bearbeitet:
myFC mußt du als Variable (vom Typ Block_FC) irgendwo deklarieren (z.B. im TEMP-Bereich des aufrufenden Bausteins).
 
... schau dir doch mal unter AWL den Befehl SPL an. Hier kannst du entsprechend eines vorher geladenen Zahlenwertes Sprungmarken anspringen. An jeder Sprungmarke kannst du dann nun entsprechende Aktionen ausführen - z.B. einen FC aufrufen (aber auch Anderes) ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo nochmal,

danke Larry für den TIP, nun sieht es so aus scheint auch zu funktionieren.

Code:
      L     "DB1".Programmwahl         // 4 Bit Eingang (0-15)
      SPL   lstx                              
      SPA   null
      SPA   fc_1
      SPA   fc_2
      SPA   fc_3
      SPA   fc_4
      SPA   fc_5
      SPA   fc_6
      SPA   fc_7
      SPA   fc_8
      SPA   fc_9
      SPA   fc_a
      SPA   fc_b
      SPA   fc_c
      SPA   fc_d
      SPA   fc_e
      SPA   fc_f
lstx: SPA   ende
null: SPA   ende
fc_1: CALL  FC     1
fc_2: CALL  FC     2
fc_3: CALL  FC     3
fc_4: CALL  FC     4
fc_5: CALL  FC     5
fc_6: CALL  FC     6
fc_7: CALL  FC     7
fc_8: CALL  FC     8
fc_9: CALL  FC     9
fc_a: CALL  FC    10
fc_b: CALL  FC    11
fc_c: CALL  FC    12
fc_d: CALL  FC    13
fc_e: CALL  FC    14
fc_f: CALL  FC    15
ende: NOP   0
Immernoch besser als in FUP mit 15 NW. Ich würde trotzdem lieber eine Variante mit einer Variable vorziehen (so in etwa: CALL FC[DB1."Programmwahl"]), dann wären es nur einpaar Zeilen.
Falls jemand so etwas hat kann sich ja mal melden, danke.

MfG
youfyouk
 
Die Variante von Jochen kannte ich noch gar nicht ... Interessant ...

@TE:
Das mit der Sprungleiste ist so aber noch nicht ganz richtig da ab dem angesprungenen auch alle weiteren FC-Aufrufe abgearbeitet werden. Du müßtest da also hinter jedem Aufruf um das zu verhindern noch ein "SPA Ende" mit dranhängen ...

Gruß
Larry
 
Code:
L DB.Programmwahl
T #blabla // wort in temp
UC FC [#blabla]
sollte doch gehen, du hast halt dann nichts in der querverweisliste...

Ja so einfach :ROFLMAO:
Wir hatten mal ne kleine alte Anlage, dürfte kurz drauf gebaut worden sein, als die S7 rauskam.
Da hat der Programmierer so die Schrittkette gemacht.
In einer FC den Aufruf und in den, ich glaub so um die 20 FCs warens, dann die Transitionen und mit nächster Schrittnummer in MW [#blabla]laden.
Wär ja gegangen wenns nacheinander abgearbeitet worden wäre, aber das war ein gehopse, der reinste Wahnsinn :ROFLMAO:
Wir hams gehasst wenn da was zum ändern war, bzw. Störung war.
 
Zurück
Oben