Aufruf einer FUNCTION abhängig von einer Eingangsvariablen

Aber das ist doch auch nur rein theoretisch, denn wenn ich die FC erzeuge, die in der Methode dann verwendet werden sollen, dann kann ich auch den FB anfassen. Das müßtest du dann nicht machen, ok. Bekannt sein muß doch alles, denn auch für die übergebenen Funktionsnamen müssen ja Funktionen vorhanden sein. Ich freu mich schon, wenn eine SPS abk.., bloß weil ein falscher Funktionsname übergben wurde, möglichst noch per Ethernet aus einer AS400. Sowas kann mit case einfach nicht passieren, die Funktion muß ja drinstehen. Ich bin schon immer der Meinung, dass in eine SPS nur robuster, deterministischer Code hineingehört. Mag sein, dass es Anwendungsfälle gibt, aber die sind mir bisher noch nicht untergekommen. Auch Callbacks halte ich zumindest für ein klein wenig fragwürdig oder sagen wir besser gefährlich. Funktionieren die immer? Kann die SPS hängenbleiben in so einem Callback? Was ist mit der Zykluszeit und der Taktzeit? Blickt da noch ein Programmierer durch, der das nicht mit entwickelt hat? Das sind schon Fragen, die man sich stelen muß. Ich hab zumindest Kunden, die wollen es einfach, robust, nachvollziehbar. Aber ja, ansonsten soll die Anlage alles anzeigen und alles können. :) So ist das halt immer.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Derartige Überlegungen kommen ganz sicher aus der .Net-Welt. Dort kann ich per Reflektion etwas nach dessen Namen suchen und dann natürlich auch ansprechen. Das macht DA in vielen Situationen auch Sinn.
Wenn ich jetzt allerdings versuche (so rein überlegungsmäßig) etwas ähnliches in eine SPS (ob nun Beckhoff oder Siemens oder Wago oder oder) zu übertragen dann erschließt sich mir das im Augenblick auch nicht. Ich fände es also auch schön und interessant, wenn der TE sich dazu mal äußern könnte.

Auf jeden Fall ist es aber schon so, wie es Ralle schreibt : ob solche Programme dann noch wartbar und für einen Außenstehenden verständlich sind bezweifle ich schon "ein wenig".

Gruß
Larry
 
Also... Sicherlich, wenn ich einen FB erstelle, bei dem ich alle möglichen Fälle kenne, dann kann ich alles im FB ausprogrammieren. Gerade bei größeren Firmen, bei denen Standard FBs verwendet werden wird dies aber manchmal nicht erlaubt und deswegen wird es teilweise abstrakt gehalten.
Hauptsächlich wird dies aber denke ich genutzt, wenn man einen FB in einer Libary Zur Verfügung stellt. Abstürzen der SPS kann man durch Abfragen auf ungleich null abfangen. Die richtigen Daten müssen es natürlich sein.... Wenn ich eine Division durch Null durchführe, oder ne Endlosschleife Programmier, dann wird das auch nicht gut ausgehen ;-).
naja egal. Wie auch immer. Es wurde eben bei uns schon genutzt um geschützte FBs trotzdem etwas flexibel in der beschriebenen parameterbeschreibung von außen zu halten.
 
Das, was du da beschreibst, hört sich für mich nicht danach an, dass es primär darum geht, die Programme durchsichtiger zu machen oder gut durchzustandardisieren sondern eher für den Endkunden unüberschaubar - sorry mein Eindruck.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@SY50
Ja, aber ich habe den TE eher so verstanden, dass er einen String "My_Function" mit dem Inhalt "Funktion_1" übergeben will und im FB dann diese Funktion (Funktion_1) aufrufen und ausführen lassen will.
Übergibt er den String "Funktion_2", dann eben diese Funktion aufrufen und ausführen.

Genau diesen Anwendungsfall möchte ich damit erschlagen.

Die Funtionalität stammt aus der Step7-Welt.
Dort arbeite ich mit einem Funktions-Baustein, welcher in der Lage ist, jede beliebige Funktion aufzurufen.
Die Funktionen werden vom Programmierer geschrieben und über den tollen Funktions-Baustein aufgerufen.
Deshalb muss ich dem Funktions-Baustein den Namen der Funktion mitteilen, welche er ausführen soll.

DER FUNTIONSBAUSTEIN PRÜFT UND ÄNDERT UNMITTELBAR VOR UND UNMITTELBAR NACH DEM AUFRUF DER FUNKTION DIVERSE DATEN.
Der Funktions-Baustein selbst, wird als Multi-Instanz ausgeführt.


Dieses ganze THEMA ist bei mir genau das Gegenteil von dem was Ihr hier vermutet.
Es dient der schnellen, übersichtlichen und einfachen Programmierung. --> :p auch wenn das wieder einige nicht glauben werden. :p

Auf Step7 hat sich dies bei uns schon über Jahre bewährt.

TROTZDEM MAL DANKE, für die zahlreichen Beiträge.

PS: Habe mir jetzt eine andere Lösung einfallen lassen. Denn Veränderungen können auch immer für Verbesserungen genutzt werden.

CIAO
 
Mit Verlaub, das ist ein Schmarren, jeder Programmierer programmiert sich sein Funktion in einem FB(FC), den er dann nach Bedarf eben aufruft oder auch nicht- wenn es schon so einen Anwendungsfall gibt.
Wenn so einer was bei uns programmiert haben wir bei jeweiligen Kunden Werksverbot, und ich könnte es ihm nicht mal verübeln.

Dieses ganze THEMA ist bei mir genau das Gegenteil von dem was Ihr hier vermutet.

Irrtum, ich habe den Braten schon gerochen.
;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das, was du da beschreibst, hört sich für mich nicht danach an, dass es primär darum geht, die Programme durchsichtiger zu machen oder gut durchzustandardisieren sondern eher für den Endkunden unüberschaubar - sorry mein Eindruck.
Es geht darum dem Kunden / Mitarbeiter zu ermöglichen auf gewisse Dinge reagieren zu können, wenn er das mag. Wie gesagt bei geschützten libarys oder bei firmenkonstrukten mit über 100 Entwicklern kann das durchaus Sinn machen, da dort nicht einfach jeder an jedem Baustein rum doktern darf/sollte und der FB dann überall anders ist.
 
Zurück
Oben