Input- Variablen von außen lesbar

Daxgehtsteil

Level-1
Beiträge
74
Reaktionspunkte
6
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

laut Doku sollen Input- Variablen nur bei Bausteinaufrufen von außen beschreibbar sein. Ist ja auch nachvollziehbar, denn mit ihnen will ich ja von außen das Verhalten der FB's beeinflussen. Tatsächlich kann man diese Input- Variablen aber im Baustein intern überschreiben und dieser Wert wird auch nach draußen gegeben.
Das sollte eigentlich nicht so sein. Leider fördert das bei einigen Programmierern Programmierfehler. Hat jemand ein Argument für das nach draußen geben der Werte von Input- Variablen?

mfg

Dax
 
Ich mache so etwas ab und zu. Dabei geht es mir in der Regel jedoch nicht darum, etwas in einer INPUT-Variablen zurückzumelden, sonden die Variable hat eigentlich OUTPUT-Charakter, soll aber auch von aussen beschrieben werden können, um sie z. B. beim Programmstart mit einem zuvor persistent gespeicherten Wert zu initialisieren.
Auch sonst habe ich eine etwas andere Sichtweise auf INPUT-Variablen als die IEC. Von aussen betrachte ich sie als VAR_PUBLIC, von innen als VAR_INPUT, d. h. der FB darf seine INPUT-Variablen nur lesen. Dann kann der Aufrufer sicher sein, diese Variablen nach dem FB-Aufruf unverändert vorzufinden, muss also nicht bei jedem FB-Aufruf zwangsläufig alle INPUT-Variablen beschreiben. Auf diese Weise sind die INPUT-Variablen das genaue Gegenstück zu den OUTPUT-Variablen, bei denen der FB sicher sein kann, sie bei seinem nächsten Aufruf unverändert vorzufinden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke dir!

Ich teile deine Meinung, innerhalb von FB's INPUT- Variablen NICHT zu beschreiben. Dennoch ist es leider möglich. Ich sehe Programme wo Programmierer INPUT- Variablen im FB beschreiben und diesen außerhalb wieder abfragen. Totales Durcheinander. Sollte eigentlich verhindert werden durch den Compiler. Naja, ich nehm es jetzt mal so hin.
 
Hallo zusammen,

generell lassen die verschiedenen IEC-Editoren (wovon ist hier eigentlich die Rede??) viele Dinge zu, die in anderen (richtigen) Hochsprachen nicht möglich sind.
Aber wo ist das Problem daran, wenn man Vorgaben macht, wie zu programmieren ist?
Ich erkläre immer wie ich die IEC interpretiere und wie ich sehe bzw. finde, wie etwas umgesetzt werden sollte.
Ist doch dasselbe wie mit der Geschwindigkeitsbeschränkung auf der Straße: man kann sie immer umgehen und oft geht es gut....aber eben nicht immer!
Also warum nicht einfach dran halten.

Ich sehe also nicht wirklich ein Problem.
@Daxgehtsteil: Warte mal ab, bis du erst mal die ganzen anderen Möglichkeitenn entdeckt hast, die eigentlich so nicht sein sollten ;)


mac203
 
Hallo Mac,

ich gebe dir da völlig Recht das man sich einfach dran halten sollte sauber zu programmieren. Doch leider tut dies nicht jeder. Ist genau so wie auf der Straße: Manche halten sich an Tempo- Limits, manche eben nicht.
Da ist es doch sinnvoll hier und da einen Blitzer aufzubauen, oder Bodenwellen in den Straßen. Der Blitzer wäre dann der Compiler, der eben doch merkt das die Zuweisung falsch ist ;) So ist es ja auch in der Hilfe dokumentiert, das Input- Variablen außer über Pointer nicht nach außen gegeben werden können. Dennoch geht es. Ich möchte auch nur ein paar Denkanstöße an die Compiler- Entwickler geben.
Und lass dir gesagt sein: Ich habe schon einiges entdeckt, was eigentlich nicht sein sollte.

Dax
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Dax,

du hast aber noch immer nicht verraten um welchen Hersteller es bei deiner Anfrage geht.....sonst können die Denkanstöße ja nicht in die richtige Richtung fließen, wenn sich niemand direkt angesprochen fühlt :)

mac203
 
Hallo Mac,

da wir hier im Codesys- Thread sind, und die grundsätzlichen Compiler- Funktionen meines Wissens nach unabhängig vom SPS- Hersteller von "3S" kommen,
meine ich natürlich die damit. Kann aber sein das ich mich hier irre. Jedenfalls ist es bei Bosch Indraworks, Beckhoff, und Codesys 3S gleichermaßen möglich.

viele Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay....ich werde der Sache mal nachgehen und mal schauen, was man mir dazu sagt

Hm, bitte keine schlafenden Hunde wecken. ;)
Manchmal ist es ganz praktisch, dass man gerade bei CoDeSys den Pfad der Tugend an einigen Stellen verlassen kann. Solange man das mit Verstand tut und ordentlich kommentiert, sehe ich darin auch keine Sünde.
 
Zurück
Oben