CoDeSys 2.3 Variablen Sprung zwischen Unterprogrammen

Michael68

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

wie übernehme ich Variablen der Ausgänge in andere Unterprogramme?!

z.B. wenn ich:

Fb_Stromstoss.xAktor

in

DALI(PRG)

benutzen möchste ... wie mache ich das?

HILFE!


VAR-Sprung.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
"Globale Variable" heisst das Zauberwort
Nein, das ist ein böses Wort. Globale Variablen braucht man nur zum Datenaustausch zwischen mehreren Tasks.

Ich würde im PLC_PRG eine Variable "Output_to_DALI" deklarieren und sie an den Ausgang "xAktor" des FB's hängen. Im DALI dann eine Variable "Input_from_PLC_PRG" deklarieren. DALI aus PLC_PRG heraus aufrufen und dabei "Output_to_DALI" mit dem DALI-Eingang "Input_from_PLC_PRG" verbinden.
 
Hallo,

"Global" war mir klar das es nicht geht :)


@StructuredTrash: Geht nicht, habe die VAR angelegt aber der wert wird nicht übernommen ... wieso nicht?
Was fehlt?!
 
hallo,
wo hast du denn die beiden Variablen
Input_from_PLC_PRG mit Output_to_Dali miteinander verbunden ??

sollte in ST so aussehen: Output_to_Dali:=Input_from_PLC_PRG;

aber warum sollte man nicht eine Variable Global anlegen..dafür ist´s doch da ??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das war doch meine Frage?! Mir war nicht klar wie ich die Globale-VAR Deklariere. Habe es jetzt aber raus gefunden:

Variablen Liste - das hatte ich nicht gesehen / War mir dich bewust.
Dali_04.JPG





Also geht:

Dali_03.JPG



Also schliesse ich das Thema und sage Danke für die Dankanstöße!
 
Zuletzt bearbeitet:
Und wieder eine Seele, die für eine ordentlich strukturierte Programmierung verloren ist.
Ich erkläre aber trotzdem den Fehler im ersten Versuch. Die Variable "Input_from_PLC_PRG" muss im "DALI" als "VAR_INPUT" deklariert werden, damit man ihr aus dem aufrufenden Programm heraus einen Wert übergeben kann.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
:) keine Sorge ich habe schon den Kopf in ST gesteckt und werde da jetzt auch mehr machen ...

Sorgen mache ich mir meist um anderes.
Aber was dir StructuredTrash schreiben wollte ist, dass wenn es funktioniert, es nicht immer der richtige Weg ist.

Es gibt nichts schlimmeres, als schlechte Angewohnheiten wieder zu vergessen.


bike
 
:) keine Sorge ich habe schon den Kopf in ST gesteckt und werde da jetzt auch mehr machen ...
Na, dann besteht ja vielleicht noch Hoffnung.:)
Wobei ich einen Umstieg auf ST nicht von vornherein als Zeichen dafür werte. Ich habe zwar schon oft die Meinung gehört, dass eine vernünftige Strukturierung der Daten nur mit einer Hochsprache möglich wäre, aber das ist Blödsinn. Zum Einen sieht eine saubere Datenübergabe zwischen aufrufendem und aufgerufenem FB oder PRG mit Hilfe von "VAR_INPUT/VAR_OUTPUT" auch in FUP sehr übersichtlich aus, zum Anderen ist der Mehraufwand gegenüber der Quick and Dirty-Lösung "Globale Variable" in ST genauso hoch. Es ist unabhängig von der Sprache schlicht und einfach eine Frage der Disziplin.

Es gibt nichts schlimmeres, als schlechte Angewohnheiten wieder zu vergessen.
War das jetzt wirklich so gemeint, oder ist es eher so etwas wie NOT NOT?:)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wie übernehme ich Variablen der Ausgänge in andere Unterprogramme?!

z.B. wenn ich:

Fb_Stromstoss.xAktor

in

DALI(PRG)

benutzen möchste ... wie mache ich das?

HILFE!


VAR-Sprung.jpg

Thema ist zwar schon durch, aber bei mir würde so eine abfrage im Programm DALI(wenn auf die Variable nur lesend zugegriffen wird) so aussehen:

In Programm DALI:
"PLC_PRG.Taster_Tech_1.xAktor" in der OR Verknüpfung

Ist zwar nicht jedermanns Sache aber, ich persönlich finde diese Art der Abfrage übersichtlicher (na ja, jedem seine Meinung...)

mfg,
Flo
 
In Programm DALI:
"PLC_PRG.Taster_Tech_1.xAktor" in der OR Verknüpfung

Ist zwar nicht jedermanns Sache aber, ich persönlich finde diese Art der Abfrage übersichtlicher (na ja, jedem seine Meinung...)

mfg,
Flo

Junge, junge Ihr geht noch mal richtig zum Thema ab :)

"PLC_PRG.Taster_Tech_1.xAktor" finde ich sehr gut, gerade wenn ich wieder nach länger Zeit rein schaue, ist es klar wo es her kommt. Werde ich auch so machen da ich den Kram nochmal grundliegend neu aufbaue. Ist immer noch ein Versuchsfeld und das muss hier die nächsten Wochen aufhören. Habe extra noch einen Controller zugelegt um eine zweite für Tests aufzubauen ...

Allen Danke für die Ideen!
 
"PLC_PRG.Taster_Tech_1.xAktor" finde ich sehr gut, gerade wenn ich wieder nach länger Zeit rein schaue, ist es klar wo es her kommt.
Wenn Du es denn wiederfindest. Dem DALI sieht man ja dann gar nicht an, dass es eine Variable aus PLC_PRG verwurstet. Wenn ich in die Versuchung gerate, in einem PRG auf eine Variable aus einem anderen PRG zuzugreifen, frage ich mich, wozu ich überhaupt zwei PRG's habe, zumindest aber, ob ich die Trennlinie zwischen den beiden an der richtigen Stelle gezogen habe.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das hat den Grund das ich ein Tastersignal / Ergebnis aus einem anderem Program übergangsweise brauche. Wie ich schon schieb es sind einige Experimente im Program - laufen aber gut - das es die ganze Anlage zwar in Betrieb ist aber ist trotzdem mein Experimentierfeld.
 
Zurück
Oben