InTouch - Trendskalierung

Teitiel

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

vielleicht kann mir hier wer weiterhelfen.
Ich zeige in einem Historischen Trend Verbrauchsdaten der Anlage an. Für die Grenzwerte habe ich jetzt die maximal Möglichen Werte des Datentyps eingetragen, da ich nicht sagen kann, wie weit der Verbrauch gehen wird.
Das Problem ist jetzt, dass die Wertanzeige des Trends ebenfalls bis zum maximal Wert geht, und nicht automatisch skaliert, je nachdem wo der tatsächliche Wert liegt. Kennt wer eine Möglichkeit die Wertachse über Skripte anzupassen?
Oder irgendeine andere Methode, damit ich das so hinbekomme?

Würde mir sehr helfen, Danke

mfg Robert
 
Die historischen Trends sind bei Intouch etwas unpraktisch, eben weil diese die Skalierung immer aus der Datenbasis beziehen.
In der Trendkonfiguration wird dann nur noch prozentual auf die Spanne dieser Grenzen (MaxEU - MinEU) Bezug genommen.

Wenn man eine mehr oder weniger automatische Skalierung haben möchte, kann man es so machen dass man über die Statistikfunktionen die Maximal- und Minimalwerte zwischen den Linealen heranzieht.
An diese Werte kommt man mit einem Skript mit den Funktionen
Code:
HTGetValueAtZone( HistTrend.Name, HistTrend.UpdateCount, HistTrend.ScooterPosLeft, HistTrend.ScooterPosRight, 1, "PenMaxValue" )
HTGetValueAtZone( HistTrend.Name, HistTrend.UpdateCount, HistTrend.ScooterPosLeft, HistTrend.ScooterPosRight, 1, "PenMinValue" )

In dem Fall werden die Werte von Stift 1 ausgelesen. "HistTrend" ist die interne Variable vom Typ Hist. Trend. Die musst du deinen Gegebenheiten anpassen.
Um die Trendanzeige zu konfigurieren, lassen sich die Punktfelder .MaxRange und .MinRange der Trendvariable von extern beschreiben. Diese beiden Werte können auch im Dialog in der Intouch Runtime eingestellt werden, wenn man mit der Maus auf den Trend klickt.

Wenn man jetzt eine automatische Skalierung haben möchte, könnte man bei Bedarf folgendes Quickscript z.B. über einen Button neben dem Trend ausführen:

Code:
DIM PenMaxValue AS REAL;
DIM PenMinValue AS REAL;
DIM PenMaxEU AS REAL;
DIM PenMinEU AS REAL;
DIM Stiftnummer AS INTEGER;

{* Daten aus Trend für Stift 1 auslesen *}
Stiftnummer = 1;

PenMaxValue  = HTGetValueAtZone( HistTrend.Name, HistTrend.UpdateCount, HistTrend.ScooterPosLeft, HistTrend.ScooterPosRight, Stiftnummer , "PenMaxValue" );
PenMinValue  = HTGetValueAtZone( HistTrend.Name, HistTrend.UpdateCount, HistTrend.ScooterPosLeft, HistTrend.ScooterPosRight, Stiftnummer , "PenMinValue" );
PenMaxEU  = HTGetValueAtZone( HistTrend.Name, HistTrend.UpdateCount, HistTrend.ScooterPosLeft, HistTrend.ScooterPosRight, Stiftnummer , "PenMaxEU" );
PenMinEU  = HTGetValueAtZone( HistTrend.Name, HistTrend.UpdateCount, HistTrend.ScooterPosLeft, HistTrend.ScooterPosRight, Stiftnummer , "PenMinEU" );

{* Trendgrenzen setzen *}
HistTrend.MaxRange = (PenMaxValue - PenMinEU) * 100 / (PenMaxEU - PenMinEU);
HistTrend.MinRange = (PenMinValue - PenMinEU) * 100 / (PenMaxEU - PenMinEU);

Wenn man will kann man sich die Stiftnummer und den Trend noch als Parameter einrichten, dann ist das mehr oder weniger universal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wow, danke, genau sowas hab ich gesucht.
Welchen Trend verwendest du statt dem Hist. Trend? Hab gelesen dass es mit dem 16-Stift Trend automatisch funktionieren soll, jedoch kann
ich den im Assistenten nicht finden und einfügen. Ist das eine optionale Erweiterung?
 
Ich benutze auch immer den historischen Trend (historisch gewachsen ;-) )
Diesen 16-Stift Trend habe ich bisher nur im Handbuch gesehen. Bei Intouch gibt es meist ein riesen Stapel an CDs dabei, ich würde mal auf der Productivity Pack CD nachsehen. Ich musste zumindest schonmal die Symbol Factory von der CD nachinstallieren.
 
Zurück
Oben