SCL FB als nicht Multiinstanzfähig deklarieren

Sarek

Level-2
Beiträge
312
Reaktionspunkte
51
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ist es möglich in SCL einen FB als nicht Multiinstanzfähig zu deklarieren?

Hintergrund:

Ich habe einen FB der zu 100% nicht instanziert wird.
In diesem Baustein gibt mehrere Schleifen und Arrays in den Instanzdaten werden darüber indirekt adressiert.
=> der Compiler muß einigen Aufwand mit dem AR2 betreiben
(Addition des AR2 um den Anfang der Instanz "einzurechnen")

Falls der Compiler dies bei nicht MUI-Fähigkeit weglassen würde könnte ich
eine erhebliche Laufzeitverbesserung erwarten.
(Ist sehr zeitkritisch da der Aufruf im schnellsten Zeit-OB laufen muß)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es gibt evtl. einen Weg, der ist aber äußerst aufwendig, wenn er denn überhaupt praktikabel ist. Ganz davon abgesehen glaube ich nicht, dass es geschwindigkeitsmäßig irgendeinen Unterschied macht, ob der FB multiinstanzfähig ist oder nicht, aber egal.

Leg Dir zuerst einen "Dummy" FB an, mit Multiinstanz = Nein.

Gehe zu Deinen SCL-FB-Aufruf und dann online. Dann rechte Maustaste und "Beobachten". Du siehst dann die AWL Übersetzung Deines SCL-Codes.
Diesen Baustein kannst Du nun komplett markieren und in Deinen "Dummy" FB einfügen. Das gleiche auch mit der Variablentabelleneinträgen.
So Gott will, hast Du dann eine nicht multiinstanzfähige Kopie Deines SCL-FBs erzeugt.
 
@Sarek:
Ich glaube nicht, dass dich dieser Ansatz wirklich weiter bringt. Das Problem im Baustein (Umsetzung des SCL-Codes) ist im Grunde ja die Pointer-Erzeugung und wie damit umgegangen wird. Das macht SCL im Rahmen seiner (internen) Vorgaben.
Ich hatte einmal zur Optimierung des Codes bei Siemens versucht anzuregen, dass eine "WITH"-Deklaration mit eingebracht werden sollte, damit (vor allem bei Zugriffen auf STRUCT-Variablen) nicht für jede beinhaltete Variable ein neuer Pointer errechnet wird - zwecklos ...
Da wird dein Vorschlag dann wahrscheinlich auch ncht auf sehr viel Gegenliebe stossen ...

Gruß
LL
 
Zurück
Oben