Step 7 Indirekter FC Aufruf in SCL

reini69

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

ich mache gerade erste Schritte mit SCL und stecke gerade an folgendem Problem fest: ich habe einen Baustein, an den ich einen Parameter vom Typ Block_FC übergebe. Wie kann ich in meinem SCL-Code diesen übergebenen FC aufrufen? Ich mache also praktisch einen indirekten FC-Aufruf. Wie kann man so was in SCL realisieren? Geht es überhaupt?

Vielen Dank schon mal vorab.
 
In SCL kannst du mit BLOCK_FC nicht viel anfangen, du kannst es nur an eine weitere Funktion weitergeben.
Wenn du sowas wie einen indirekten FC-Aufruf machen willst, müsstest du das in eine AWL-Funktion auslagern.

Vielleicht kannst du das ja auch anders lösen. Ich habe eine Anwendung mit Block_Fc bisher nur in den Siemens-Bausteinen vom Standard PID-Control gesehen. Einem so aufgerufenen FC lassen sich auch keine Parameter übergeben, zumindest nicht in üblicher Weise.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank für die Antwort, so muss ich mir zumindest nicht weiter den Kopf zerbrechen.
Ich bin nicht an die Parameterübergabe eines Parameters vom Typ BLOCK_FC gebunden. Ich könnte den Baustein auch mit einem Parameter vom Typ Int oder Word, etc. aufbauen. Aber wenn ich dich richtig verstanden habe ist ein solcher indirekter FC-Aufruf innerhalb eines SCL Bausteins wohl gar nicht möglich. Sehe ich das richtig?
 
Hallo!

Ich wollte das Thema nochmal herausholen.

Ich habe folgende AWL Konstruktion um indirekt einen FC aufzurufen, die ich gerne in SCL lösen möchte:
(FC hat keine Parameter und keine Rückgabewerte)

L #Nummer_des_FC
T #ptr_indadr_W
UC FC [#ptr_indadr_W]
 
Mir fällt da nur eine Case-Anweisung ein. Machbar, wenn es nur wenige FC sind. Vorteil, es kann auf keinen Fall ein FC aufgerufen werden, den es nicht gibt. (Wenn man sich nicht verschreibt :) )
Ansonsten wie oben geschrieben, einen kurzen AWL-FC innen mit deinem Code, diesen FC dann mit angelegter FC-Nummer in INT im SCL-Baustein aufrufen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@WGertzen:
In SCL geht es nicht - SCL will alles kennen, was es verwendet.
Ob man es generell machen sollte halte ich persönlich für sehr fragwürdig. Nenne mir doch bitte mal ein Beispiel, wo etwas derartiges Sinn macht (da du es ja anscheinend so einsetzt wirst du das ja können).

Gruß
Larry
 
@Larry
Wir setzen seit ewigen Zeiten Schrittketten auf Basis der sogenannten DIMOS Diagnose ein.
Jeder Schritt ist ein eigener FC der von einem Verwaltungs-FB aus aufgerufen wird. Welcher FC für welchen Schritt aufgerufen wird, steht in einer Liste innerhalb
eines der Schrittkette zugeordneten DB's. (Das ganze kommt aus S5 Zeiten aus der Automobilindustrie)

Diese Art der Schrittketten mag zwar etwas antiquiert sein, gibt uns aber eine enorme Flexibilität auf Änderungen in der Anlage oder auf
Kundenwünsche zu reagieren.
Einige externe Programmierer sind zwar erst am schimpfen, erkennen aber dann die Vorteile. Insbesondere der Diagnose, warum der Stellbefehl nicht kommt.

Da wir bisher erfolgreich dem TIA fern geblieben sind, jetzt aber nicht mehr drum herum kommen, wollte ich unsere FC/FB-Bibliothek im Zuge des umstiegen
direkt mit auf SCL umstellen. Weiterhin denke ich, dass die "AWL-Gräber" für den Nachwuchs schwieriger zu durchblicken sein, als SCL.

Gruß
Wolfgang
 
@Wolfgang:
Ich denke, ihr habt dann da euren Standard - das will ich jetzt auch mal nicht weiter bewerten. Für mich hört sich dein/euer System allerdings zumindestens sehr aufwändig an.
Allerdings : wenn du auf SCL gehst und darin die Schrittketten machen willst dann hast du doch mit der SELECT-Anweisung auch sehr schöne Möglichkeiten, eine absolut flexible Schrittkette zu gestalten, die außerdem auch von jedem schnell nachvollziehbar ist.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da wir bisher erfolgreich dem TIA fern geblieben sind, jetzt aber nicht mehr drum herum kommen, wollte ich unsere FC/FB-Bibliothek im Zuge des umstiegen
direkt mit auf SCL umstellen. Weiterhin denke ich, dass die "AWL-Gräber" für den Nachwuchs schwieriger zu durchblicken sein, als SCL.

Gruß
Wolfgang

Da ihr auf SCL umsteigen möchtet, gerade um es dem Nachwuchs etwas leichter zu machen, würde ich genau darum auch die Schrittkette modernisieren. Euer bisheriges System funktioniert ja anscheinend sehr gut und daran ist auch nichts zu kritisieren. Doch wenn ihr nun auf TIA / SCL umsteigt, würde ich nicht versuchen, eine noch auf S5 basierende Schrittkette irgendwie reinzubauen.
Das bedeutet zwar gerade am Anfang einen hohen Zeitaufwand, wird sich aber auf Dauer sicherlich auszahlen.
 
Zurück
Oben