In einem FB ist das doch zu 100% definiert, eine Out-Variable zu lesen. Hier jetzt überall Zwischenvariablen verwenden zu müssen, nur damit der Compiler schweigt ist auch nicht zielführend, zwecks Wartbarkeit und Speicherverbrauch. Das ist ja auch bei der Verwendung von TON-Timern beim Ausgang Q der Fall. Bei bool-Variablen reicht es aber einfach eine logische Und/Oder Verknüpfung davor zu setzen, denn da scheint es das TIA-Portal nicht zu stören, wenn man da eine OUT-Variable liest. Aber das ist typisch TIA-Portal, da wird irgendein sinnloser Mist reinprogrammiert, und dann noch nicht einmal durchgängig.Ja, es ist halt generell keine gute Idee, ne Outvariable innerhalb eines FC oder FB zu lesen...
Sei zufrieden, dass wenistens FUP meckert...
FC-Outputs sind aber keine Variablen im Speicher, sondern liegen im Stack und müssen auf jeden Fall eine Zuweisung erhalten.Und für mich ist ein Output auch nur eine Variable im Speicher die ich nur schreiben möchte wenn es Notwendig ist.
Wie aufwändig ist es, das Zuweisen von TRUE an eine Variable zu verhindern, die eh' schon TRUE ist? Und wie schädlich ist es, die eigentlich unnötige Zuweisung trotzdem zu machen?Ziel war es eigentlich eine Variable auf TRUE zu setzen falls die Prüfung im FC dies für notwendig erachtet, falls nicht soll er die Variable einfach in Ruhe lassen. Falls sie nämlich schon TRUE ist dann soll das bitte auch so bleiben.
Die eine Kopieraktion am Ende des Bausteins macht den Programmcode tatsächlich unerträglich größer und viel langsamerAm Ende ist meine Lösung die gleiche wie von @PN/DP, aber es lässt sich nicht so schön Verwenden und macht das Programm größer als es müsste.
Ja, aber der von mir oben skizzierte Fall mit dem HMI Zugriff oder Unterbrechung durch Weckalarm führt zu Inkonsistenzen... Im FC ists auf jeden Fall nen großes Problem, weshalb man es sich auch für FBs nicht angewöhnen sollte...In einem FB ist das doch zu 100% definiert, eine Out-Variable zu lesen.
Bei der Verwendung als InOut stimme ich dir zu. Aber den Fehler erzeugt TIA-Portal auch bei nur lesendem Zugriff von Out-Variablen eines FBs. Wie gesagt, in SCL scheint das nicht geprüft zu werden, und wenn man eine boolsche Verknüpfung davorsetzt, dann ist es dem TIA auch egal.Ja, aber der von mir oben skizzierte Fall mit dem HMI Zugriff oder Unterbrechung durch Weckalarm führt zu Inkonsistenzen... Im FC ists auf jeden Fall nen großes Problem, weshalb man es sich auch für FBs nicht angewöhnen sollte...
Aussdem mehrfach auf den Out rumzuschmieren ist sowieso unschön, wenn da mal jemand anders nachvollziehen will, warum der jetzt grad true oder false ist. Da hilft dann aber auch nicht die eine Tempvariable sondern mehrere für jede Verwendung...
Ich will ja den Output vom FB Manipulieren und nicht vom FC.FC-Outputs sind aber keine Variablen im Speicher, sondern liegen im Stack und müssen auf jeden Fall eine Zuweisung erhalten.
Ach ja, das hatte ich missverstanden. Ich dachte Du willst einen Output in einem FC lesen.Ich will ja den Output vom FB Manipulieren und nicht vom FC.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?