B&R 3.0.90.20 SP02 - Visualisierung

crash0

Level-2
Beiträge
18
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo an alle, bin Student und versuche mich an einer Visualisierung für das Panel PP045 mit B&R AS 3.0.90.20 SP02.
Hardware: Panel PP045 SW QVGA
Folgendes Problem bzgl. Visualisierung: Ich habe ein numerisches Inputfeld. Eine Task für die Visu ist angelegt und in die CPU Cycles eingetragen. In der Variablentabelle der Visu ist eine Integer-Variable angelegt. Das Inputfeld (dessen Value) habe ich mit dieser Variable (INT TEST) verknüpft (Local.Visualisation.visuctrl.TEST). Und auch ein Numpad habe ich zugewiesen, damit man via Touchscreen was eintippen kann.
Wenn ich das ganze nun teste, sehe ich nach Eingabe einer Zahl nichts im Inputfeld. Auch die Variable wird nicht beschrieben? Was mach ich falsch?

Lösungsversuche:
- Den Valuewert über DataSource.Visualisation.visuctrl.TEST zugewiesen - keine Änderung.
- Über einen Knopf einen bestimmten Wert in eine Variable schreiben lassen, die dann an einem Outputfield wiedergegeben wird - keine Änderung

Ich sehe im Feld immer nur das Zeichen "-".

Was mache ich also falsch? Ich danke für jeden Ansatz!
 
Hallo crash0,

du musst die Variable die du angelegt hast zumindest einmal im Task verwenden.
Sonst wird die Variable nicht behandelt und du bekommst immer nur "-" angezeigt.

Also schreibe einfach den Namen der Variable in das Init-UP des Tasks
und übertrage das Programm auf das Zielsystem.
Dann sollte es klappn.

Schöne Grüße,
ftp25
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke

Danke für deine Antwort! Ich werde es heut Abend testen, wenn ich zu Hause bin.
1) D.h. jede Variable in der VT des Visutasks muss initialisiert werden?
2) Muss ich Variablen, die in der Visu verwendet werden, unbedingt in die Visu-VT schreiben? Geht das nicht auch in der globalen global.var? So war das glaube ich früher bei der 2.4er Version von B&R AS, die ich mal bei einem Bekannten gesehen hatte. Da standen alle Variablen in der global.var und man konnte mit der Visu auf alle Variablen schreiben.
Eine kurze Erklärung wäre super! Aus der Hilfe lassen sich die Details nicht genau herauskitzeln.
3) Wenn ich mir der SPS auf Variablen zugreifen möchte, die in der Visu verwendet werden, wie gehe ich da vor? Die Hilfe sagt, dass die VISU-Variablen irgendwie (mit den globalen(?)) syncronisiert werden. Was genau ist damit gemeint? Kurze Erläuterung zur Syncronisierung wäre super.
 
Es ist eher umgekehrt. Die VISU greift auf Variablen in der CPU zu. Um die "Syncronisierung" brauchst Du dich nicht zu kümmern.
Die Variable muß nur "da sein" z.B. TEST=TEST . In den Visual Components kannst Du dir Variablen anzeigen lassen, die Du anbinden
willst. (Datapoint) Mit Lokalen geht das übrigens auch.

Gruß
 
D.h. ich kopiere mir Variablen der CPU oder der global.var in die VT der Visu?
Denn wenn ich dem Datapoint eine Variable zuweisen muss, sehe ich keine global.var.
Das verwirrt.
Sehe dann Data Source, Intern und Local.
Kann mir jemand bestätigen, dass ich die Variablen der SPS in die visu.var kopieren muss um in diese zu schreiben?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
auf Deiner Seite sind doch Objekte (ein Inputfeld in diesem Fall). Diese Objekte haben Eigenschaften - z.B das Value
Dieses Value hat einen Datapoint. Wenn Du das bearbeitest bekommst Du eine Liste aller Variablen - globale sofort - lokale im entsrechenden Task.
Auswählen - fertig!
Erstellst Du neue Task-Variablen bei geöffneten Visual Components (VC) müssen die Daten in VC neu eingelesen werden. Dann am Besten für Dich VC einmal schliessen und wieder öffnen. (Geht aber auch anders)

Gruß

Peter
 
Danke an alle soweit!

Nun aber eine generelle Frage bzgl. Variablen:
Sobald ich bei "Value" den Datapoint auswähle kommt das Fenster Datenpunkt auswählen. Ich sehe keine einzige Variable, die in der Global.var deklariert wurde.
Folgendes steht zur Auswahl:
X None
DataSource
Internal
Local

Kann mir jemand erklären, warum ich den Task der Visu (visuctrl) einmal unter DataSource.Visualisation.visuctrl und unter Local.Visualisation.visuctrl finde? Worin besteht der Sinn?
Wie gesagt, bei der B&R AS 2.4 waren alle Variablen in der global.var und ich konnte aus der Visu diese Variablen verknüpfen. Wenn ich die Daten nachher mit der SPS und aus der SPS mit der Visu durch Nutzeraktion bearbeiten möchte, wo sollte ich den Datenpunkt verknüpfen?

Danke im Voraus!

PS: @ftp25: Danke für den Tipp! Hat funktioniert! Ich kann nun via Inputfeld einen Wert eingeben. In der Debuggerwatch wird er leider nicht angezeigt.
Verstehe aber immer noch nicht warum ich die Variable in der INIT verwenden muss. Ich möchte manche Werte einfach vom User eingeben lassen und dann in der SPS verwenden. Sollte ich dann einfach die Variablen mit z.B. 0 initialisieren? Mir fällt sonst nichts sinnvolleres ein.
 
Danke an alle soweit!

Nun aber eine generelle Frage bzgl. Variablen:
Sobald ich bei "Value" den Datapoint auswähle kommt das Fenster Datenpunkt auswählen. Ich sehe keine einzige Variable, die in der Global.var deklariert wurde.
Folgendes steht zur Auswahl:
X None
DataSource
Internal
Local

Kann mir jemand erklären, warum ich den Task der Visu (visuctrl) einmal unter DataSource.Visualisation.visuctrl und unter Local.Visualisation.visuctrl finde? Worin besteht der Sinn?
Wie gesagt, bei der B&R AS 2.4 waren alle Variablen in der global.var und ich konnte aus der Visu diese Variablen verknüpfen. Wenn ich die Daten nachher mit der SPS und aus der SPS mit der Visu durch Nutzeraktion bearbeiten möchte, wo sollte ich den Datenpunkt verknüpfen?

Hallo,
du hast wahrscheinlich selber eine "Datenquelle" mit dem Namen <DataSource> angelegt (bei mir gibts diese nicht). Mehrere Datenquellen können verwendet werden um z.B. die Refresh-Zeit einiger Datenpunkte zu verkürzen.
Normalerweise gibts "Internal" und "Local", wobei die Struktur in welcher die Variablen angezeigt werden der Programmstruktur entsprechen.
Task-Lokale Variablen findest du dann dem Task zugeordnet, Globale Variablen auf der Hauptebene des Baumes.

...Verstehe aber immer noch nicht warum ich die Variable in der INIT verwenden muss. Ich möchte manche Werte einfach vom User eingeben lassen und dann in der SPS verwenden. Sollte ich dann einfach die Variablen mit z.B. 0 initialisieren? Mir fällt sonst nichts sinnvolleres ein.

Wenn du eine Variable nur definierst (z.B. in global.var) dann kannst du diese in deinem Programm verwenden und das Programm läst sich kompilieren.

Wenn du eine Variable nur definierst aber nicht verwendest, existiert in der Runtime keine Info dazu, sie existiert dann quasi nur im AS-Projekt. D.h. Programme welche Online auf die CPU zugreifen um Variablen anzuzeigen finden diese Variable nicht (wird ja nicht verwendet).

Damit diese Variable in der Runtime aktiv wird, muss sie zumindest einmal aktiv im Code vorkommen. Eine Möglichkeit besteht nun darin im INIT Task einfach die Variable hinzuschreiben


PROGRAM _INIT

meine_Var

(oder, besser weil kein Kompiler-Warning)

meine_Var = meine_Var

END_PROGRAM


Somit ist defniert dass die Variable aktiv im Runtime Code verwendet wird.

Die Visu funktioniert nur mit Variablen welche aktiv in der Runtime verwendet werden - Variblen welche nur in der Liste definiert sind (also eigentlich nur für das AS) funktionieren nicht.

bg
bb
 
Zurück
Oben