CoDeSys Statusanzeige der Variablen

visu90

Level-2
Beiträge
139
Reaktionspunkte
3
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi!
Wenn ich mein CoDeSys-Programm teste steht oben in der Variablendeklaration normalerweise der Status der Variablen (z. B.TRUE bzw. FALSE). Bei mir stehen jetzt an dieser stelle drei Fragezeichen. Aber das Programm verarbeitet er korrekt ohne zu meckern.
Was haben die Fragezeichen für eine Bedeutung? Woran könnte das liegen, dass jetzt diese Fragezeichen auftauchen?
 
Wird das Programm abgearbeitet? Läuft dis SPS, wird dieser Programmteil aufgerufen? Sonst mal mit der Ablaufkontrolle prüfen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antworten.
Es war ein ganz simpler Fehler von mir. Und zwar habe ich diesen FB Offline geöffnet und dann habe ich mich eingeloggt. Wenn ich das richtig verstehe, dann wird das einfach nicht im Zusammenhang mit PLC_PRG gesehen.
Wenn ich den Baustein erst öffne wenn ich Eingeloggt bin, dann fordert er mich auf die beobachtete FB-Instanz auszuwählen (wie von StructuredTrash beschrieben) und NUR dann wird mir der Variablenstatus wie gehabt angezeigt. :D
 
Die Auswahl ist notwendig, weil ja mehrere Instanzen des FB's existieren könnten. So intelligent, zu prüfen, ob nur eine Instanz existiert und die Online-Verknüpfung in dem Fall automatisch vorzunehmen, ist die Entwicklungsumgebung nicht. Aber wer will schon so viel Komfort-Schnickschnack? ;)
Allerdings erlaubt es CoDeSys, Programme nicht nur mit einer Task zu verknüpfen, sondern auch aus anderen Programmen heraus aufzurufen. Wenn Du von vornherein weisst, dass Du einen FB nur einmal benötigst, kannst Du stattdessen also ein PRG schreiben. Dann brauchst Du keine Instanz zur Beobachtung auswählen.
 
Allerdings erlaubt es CoDeSys, Programme nicht nur mit einer Task zu verknüpfen, sondern auch aus anderen Programmen heraus aufzurufen. Wenn Du von vornherein weisst, dass Du einen FB nur einmal benötigst, kannst Du stattdessen also ein PRG schreiben. Dann brauchst Du keine Instanz zur Beobachtung auswählen.

Ich würde dieses "Feature" nicht ausnutzen, es ist eher eine Schwäche der IEC oder der Implementation. Ein FB ist ein früher Verwandter dessen, was in späteren Computer Sprachen Object genannt wird. Eine quasi Zusammenfassung von Methode(n) mit Daten zu einer Einheit, die man instanziert.

Hinzu kommt, dass FB Eingänge und Ausgänge haben, Programme aber erst einmal nicht. (Natürlich gibt auch ein Program in der Regel einen Wert zurück und kann mit Parametern gestartet werden aber das ist meist standardisiert (argc & argv, iRet) und wird zu anderen Zwecken benötigt.)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ein Programm kann genauso INPUT-/OUTPUT-Variablen haben wie ein FB. Man kann es als FB ansehen, dass automatisch mit einer einzigen Instanz verknüpft wird. Für mich hat dieser FB-Typ in der von statischen Strukturen und einem hohen anwendungsspezifischen Funktionsanteil geprägten Automationswelt nach wie vor seine Berechtigung. Ich gebe Dir allerdings Recht, dass er bei zunehmendem Einsatz der OOP in CoDeSys/TwinCat 3 an Bedeutung verlieren wird.
 
Zurück
Oben