Code: Alles auswählen
! configuration
var rangeBegin=100.0; ! minimaler Füllstand bei 0V
var rangeEnd= 0.0; ! maximaler Füllstand bei 10V
var sysVarName="Füllgrad ZISTERNE";
! read device data point and update system variable
var sv=dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysVarName);
var src=dom.GetObject("$src$");
if (sv && src) {
var val=src.State();
val=(((rangeEnd-rangeBegin)*val)/1000.0)+rangeBegin;
sv.State(val);
}
var src=dom.GetObject("BidCos-Wired.LEQ0975591:21.VALUE").Value();
Damit ist src wohl vom Tp integer oder real (je nach Datenpunkt). EIn besserer Editor hätte das auch angezeigt.
so und wenn du mit src.State() versucht, die Methode State () auf ein Int oder ein real anzuwenden knallt es, aber ein object ist es ja definitiv nicht.
black
probiers mal so
Code: Alles auswählen
! configuration
var rangeBegin=100.0; ! minimaler Füllstand bei 0V
var rangeEnd= 0.0; ! maximaler Füllstand bei 10V
var sysVarName="Füllgrad ZISTERNE";
! read device data point and update system variable
var sv=dom.GetObject(ID_SYSTEM_VARIABLES).Get(sysVarName);
var val=dom.GetObject("BidCos-Wired.LEQ0975591:21.VALUE").Value();
if (sv) {
val=(((rangeEnd-rangeBegin)*val)/1000.0)+rangeBegin;
sv.State(val);
}