Kommastellenumrechnung

Hallo,

ich stehe vor einem Problem:
Ich habe eine Temperatur die ich aus einer Wago an IPS sende. Um Nachkommastellen mit zu bekommen multipliziere ich in der Wago mit 100.

Aber wie rechne ich das Ganze jetzt wieder in IPS um ?
Kann man hier ein Skript erstellen das ich bei den Variabeleinstellungen mit eingebe ? Also unter eigene Aktion ?

Bitte habt etwas Rücksicht … habe echt keine Erfahrung …

habe das bis jetzt gefunden :

SetValueFloat("WagoTemperatur00", GetValueInteger("AI00")/10);

Ich weiß jetzt nur nicht wie ich weiter machen soll …

Danke für die Hilfe

ich kenne Wago nicht: wo kommt denn der Wago-Wert an? In einer Variable (unterhalb einer Wago-Instanz?) oder kann der vorher schon abgefangen werden (z.B. ServerSocket/Regvar)?

je nach dem kann man darauf so reagieren:


$Ziel_Var_ID   = 12345 // Variable zur Speicherung der Wago-Werte in IPS

SetValueFloat($Ziel_Var_ID, $WagoInput/100);

Ich versuche das mal zu beschreiben :

Ich habe eine Kategorie. Darin sind alle Modbus Adress Instanzen mit der jeweiligen Variable die ich abfrage.

Muß ich jetzt für jede Variable die ich umrechne eine neue Variable erstellen und für jede Umrechnung ein Skript ?

Kann ich nicht im Bild eine Standartfunktion auswählen ?:confused:

2012-06-23_215211.png

solange die Wago-Daten direkt in die Variablen geschrieben werden, ohne dass man sie vorher abfangen kann, wirst du jeweils eine 2. Var anlegen müssen, in die die umgerechneten Werte per Umrechnungsscript hineingeschrieben werden.

Könntest du mir das bitte beschreiben wie ich das einrichte … :rolleyes::rolleyes:
Danke !

zeig mal ein Bild von deinem Objektbaum

Reicht dir das ?

jiepp, ein paar Minuten Geduld bitte :slight_smile:

hier ein Update-Scriptchen, welches du wie im Bild gezeigt einsetzen kannst:


<?
SetValueFloat(IPS_GetParent($_IPS['SELF']), $_IPS['VALUE']/100);
?>

ich schreib jetzt mal bewusst nichts dazu (um nicht zu verwirren), das Bild müsste alle nötigen Infos liefern :wink:
Falls dennoch Fragen auftreten: fragen!:wink:

Also irgendwie funxt das nicht :rolleyes:
Muß ich die roten Texte noch austauschen ?

Notice: Undefined index: Value in

mach mal einen screeenshot

PS: welche IPS-Version hast du?

Ips 2.5 ul #2252

notice: Undefined index: Value in [wago\modbus_adresse_12293_mw5_heizkreis_1_vorlauf\umrechnung\umrechnung modbus] on line 2

Version ist ok, ich meinte aber einen Screenshot vom Objektbaum so wie den, den ich eingestellt hab, sorry

ups vergessen anzuhängen

Du bist sicher, dass du den Scriptbefehl genau so übernommen hast (case sensitve!)?


SetValueFloat(IPS_GetParent($_IPS['SELF']), $_IPS['VALUE']/100);

das hier


Undefined index: Value

deutet nicht darauf hin

Ja habe ich. Hatte etwas herumprobiert daher die Kleinschreibung… :confused::confused:

Notice: Undefined index: VALUE in [wago\Modbus_Adresse_12293_MW5_Heizkreis_1_Vorlauf\Umrechnung\Umrechnung Modbus] on line 2

Könntest du mir das Skript erklären was welcher Teil machen soll ?

ja klar, kei Problem:


SetValueFloat //=> dürfte klar sein: PHP Befehl zum schreiben eines Floatwertes in eine Variable
IPS_GetParent($_IPS['SELF']) //=> $_IPS['SELF'] enthält die ID des Scriptes (von sich selbst also), die wiederum braucht IPS_getParent, um die ID des übergeordneten Objektes zu finden. Die übergeordnete ID ist die ID, in die SetvalueFloat den Wert reinschreiben soll

$_IPS['VALUE'] //=> ist der Wert (Inhalt) der variable, die das Script via Event getriggert hat


Das alles kann man in der IPS-Doku nachlesen.

wenn ich bei mir die Daten in der Var „Value“ manuell schreibe, dann läuft das Script genau so wie es soll…hab im Moment keine Idee, warum es bei dir nicht läuft. Man kann es auch noch anders lösen, dann muss man aber wieder manuell im Script konfigurieren, das wollte ich Dir ersparen.

Vielleicht fügst du mal in des Script


print_r($_IPS);

ein und schaust, was das Meldungsfenster auswirft (muss ei n Array sein) -> das interessiert mich

Ups … mein Fehler. Wenn ich das Skript Ereignisgesteuert laufen lassen funxt es … habe immer auf den Debugknopf gedrück und diese Fehlermeldung bekommen.

Danke für deine Hilfe und deine Geduld !

P.S. :loveips: Die Variabelliste wird länger … :loveips: