du übergibst per Pointer eine Instanz eines FB an einen FB???
Warum?
Greifst du auf die Instanzdaten zu oder was passiert da?
Ich rufe den übergebenen FB auch auf. Wenn ich nur auf seine Daten zugreifen will, was bei anderen FB's meiner Lib der Fall ist, packe ich die benötigten Daten in eine Struct im VAR_OUTPUT-Bereich des FB's und übergebe dann nur diese Struct an andere FB's.
Die Aktion eines FB greift doch auf den Variablenhaushalt des FB zu. Da muss man doch nichts neues übergeben.
Tue ich auch nicht. Aber wenn ich in einem FB VAR_IN_OUT deklariere, muss ich die bei jedem Aufruf, auch bei dem von Aktionen, übergeben. Die dafür benötigte Rechenzeit stört mich bei einem Beckhoff CX kaum. Die Schreibarbeit schon etwas mehr. Vor allem stört mich aber, dass die Aktionen die VAR_IN_OUT gar nicht benötigen, sondern nur auf die lokalen FB-Daten zugreifen.
Auch wenn du per Pointer auf die Anfangsadresse einer FB Instanz zeigst, sollte sich doch hier nichts verschieben. Die Adresse bleibt die Adresse bleibt die Adresse...
Dein Wort in Beckhoffs Ohr. Aber ich bin mir da nicht so sicher. Ich habe schon Online Changes erlebt, nach denen sich die Werte von Konstanten munter änderten. Einmal wusste der Rechner sogar nicht mal mehr, wo seine Eingänge waren. Daher auch meine eigentliche Frage.
Abgesehen davon halte ich deine Vorgehensweise für unsauber was Wartung und Erweiterung deines Codes angeht. Gerade für andere Programmierer die mal auf soetwas stoßen.
Da gebe ich Dir sogar ein wenig Recht. Was ich da mache, ist eigentlich ein Fall für OOP-Vererbung und die damit verbundene erweiterte Typkompatibilität. Aber ich kann mich derzeit noch nicht zum Umstieg auf TwinCat3 durchringen. Habe zu oft Versuchskaninchen gespielt.
Eine andere Möglichkeit wäre der Einsatz von Quelltextbibliotheken, die die Deklaration bestimmter Bezeichner in der Anwendung voraussetzen. In Pascal konnte man damit einiges machen, in
CoDeSys
ist so etwas aber nur sehr umständlich durch Export/Import einzelner POUs, DUTs usw. möglich.
So, jetzt wünsche ich aber auch erst mal ein frohes Fest. Die Frage entspringt sowieso keiner aktuellen Notlage. Aber wenn es so kurz vor Weihnachten auch vorm Laptop etwas besinnlicher wird, kommt man schon mal auf Ideen, für die man sonst gar keine Zeit hat.