Codesys 3.5: SmartCoding - Anzeigen von Subobjekten

LeFish

Level-1
Beiträge
60
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits,

nachdem ich in den letzten Wochen viel mit TwinCat gearbeitet habe steht jetzt wieder ein CodeSys-Projekt an.

Ich habe eine Library von TwinCAT nach CodeSys portiert und möchte mit dieser arbeiten. Unter TwinCAT funktioniert alles soweit zur Zufriedenheit.

Unter CodeSys bekomme ich nun mittels SmartCoding nicht die Unterobjekte einer Referenz zu einem FB zurück. Ich versuche folgendes:

Eine Methode liefert eine Referenz auf einen Funktionsblock. Dieser Funktionsblock beinhaltet Methoden und Properties (alles PUBLIC). Diese Methoden würde ich gerne (wie unter TwinCAT im SmartCoding-Menü angezeigt haben nachdem ich mich mittels '.' in das Objekt begebe.

Das sind meine SmartCoding-Einstellungen:
f40db1d66ff44499bc23a20ec19d5ea0.png


Hier ist ein Beispiel:
Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

Man sieht 'Values' existiert, wird aber trotzdem nicht in einem Dropdown-Menü während der Eingabe angezeigt. Prinzipiell scheint die SmartCoding-Eingabe zu funktionieren.

Ich habe alle Pragmas bei den betreffenden Objekten entfernt. 'Values' ist eine public-Property des Objekts FB_ObjectDetector.

Hat wer einen Rat für mich?

Danke!
 
Hallo allerseits,

ich habe auch einen Verdacht woran es liegen könnte:

Ich glaube, dass Methoden unter CodeSys (ObjectDetector ist eine Methode, die eine Referenz auf einen FB_ObjectDetector zurückgibt) in der IDE für SmartCoding nicht ausgewertet werden - somit gibt es keine weiteren SubObjekte für SmartCoding die es anzeigen könnte.

Kann man forcen, dass Methoden durch SmartCoding aufgerufen und somit ausgewertet werden? Rechnerleistung hierfür habe ich genug, sodass der Arbeitsfluss nicht nennenswert unterbrochen werden würde.

Oder kann ich irgendwie einen Default-ObjectDetector in der Methode definieren, der an SmartCoding zurückgegeben wird, sodass die untergeordneten Objekte angezeigt werden?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits,

ich konnte es folgendermaßen lösen:

Ich erstelle auf Projektebene, wo die Lib eingebunden wird, ein zusätzliches Struct, welches aus Referenzen zu den FBs besteht.
Ich setze bei Start der SPS in der Initialisierungsphase mittels der oben dargestellten Methode die Referenzen zu den Instanzen.
In weiterer Folge wird nur mehr mit dem zusätzlichen Struct gearbeitet, die Methoden, welche die Referenzen zu den FBs zurückgeben, werden während der weiteren Projektierung nicht mehr benötigt.

Ich kann somit während der Projektierung direkt mit den Objekten auf symbolischer Ebene arbeiten und brauche mir über korrekte Datentypen, valide Referenzen etc... keine Gedanken mehr zu machen.
Das Arbeiten mit den Objekten ist somit unter TwinCAT und CodeSYS gleichermaßen einfach möglich.
Die Syntax zum Aufruf einer Instanz eines Objektes ist deutlich kürzer als mit der oben dargestellten Methode.
 
Zuletzt bearbeitet:
Zurück
Oben