GatherKnowledge!
Level-1
- Beiträge
- 6
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
ich würde gerne mit ST innerhalb von Programm1 einen Funktionsbaustein in Programm2 löschen.
Hintergrund:
Ich habe zwei Funktionsbausteine, die nicht koexistieren können ( so was wie ein Instanzlimit).
Damit soll verhindert werden, dass zwei Handler den gleichen USB Anschluss bearbeiten.
Allerdings ist benötige ich unbedingt beide Funktionsbausteine (am besten in unterschiedlichen Programmen)
Ich programmiere gerade in ST.
Nachdem ich einen FB schon im ersten Programm aufgerufen habe, gehe ich, mithilfe einer weiteren Visu per Visuframe wechsel, zum zweiten Programm.
Jetzt kann ich dort den FB nicht richtig ausführen, weil scheinbar das Instanzlimit überschritten worden ist.
Also müsste ich jetzt erst den alten FB löschen um den neuen aufzurufen.
Allerdings scheint sowas in Codesys nicht vorgesehen zu sein.
Ist ja im Prinzip auch nicht besonders logisch, nur bei meinem Projekt explizit gefordert.
Was ich verwende: Codesys 3.5.14
Falls jemand dazu was weiß (muss nicht unbedingt ST sein) und es hier reinschreiben könnte oder wenigstens einen Link reinhauen könnte, wäre das super!
Ansonsten bin ich auch offen für alternative Herangehensweisen, irgendwie beide FBs aufzurufen, ohne den einen zu löschen.
Code Fragmente:
so sieht meine Main aus. Hier rufe ich die verschiedenen Programme aus.
so sieht mein erstes Programm aus:
so sieht mein zweites Programm aus:
ich würde gerne mit ST innerhalb von Programm1 einen Funktionsbaustein in Programm2 löschen.
Hintergrund:
Ich habe zwei Funktionsbausteine, die nicht koexistieren können ( so was wie ein Instanzlimit).
Damit soll verhindert werden, dass zwei Handler den gleichen USB Anschluss bearbeiten.
Allerdings ist benötige ich unbedingt beide Funktionsbausteine (am besten in unterschiedlichen Programmen)
Ich programmiere gerade in ST.
Nachdem ich einen FB schon im ersten Programm aufgerufen habe, gehe ich, mithilfe einer weiteren Visu per Visuframe wechsel, zum zweiten Programm.
Jetzt kann ich dort den FB nicht richtig ausführen, weil scheinbar das Instanzlimit überschritten worden ist.
Also müsste ich jetzt erst den alten FB löschen um den neuen aufzurufen.
Allerdings scheint sowas in Codesys nicht vorgesehen zu sein.
Ist ja im Prinzip auch nicht besonders logisch, nur bei meinem Projekt explizit gefordert.
Was ich verwende: Codesys 3.5.14
Falls jemand dazu was weiß (muss nicht unbedingt ST sein) und es hier reinschreiben könnte oder wenigstens einen Link reinhauen könnte, wäre das super!
Ansonsten bin ich auch offen für alternative Herangehensweisen, irgendwie beide FBs aufzurufen, ohne den einen zu löschen.
Code Fragmente:
so sieht meine Main aus. Hier rufe ich die verschiedenen Programme aus.
Code:
case page of
0:prg_home()
1:prg_test1()
2:prg_test2()
end_case
so sieht mein erstes Programm aus:
Code:
program test1
var
meinFB:Bibliothek.USBHandler;
end_var
init();
setFBInputs();
meinFB();
so sieht mein zweites Programm aus:
Code:
program test2
var
meinFB:Bibliothek.USBHandlerMulti;
end_var
init();
setFBInputs();
meinFB();