Hier der Link, dort gibt's auch Bilder...viewtopic.php?f=26&t=40423Visu hat geschrieben: Ich suche jetzt einen Weg, der mir aus den SVs-Zeichenkette, 1x eine SV-Logikwert befüllt (für die Zeichenkette EIN/AUS) und 1x eine SV-Zahl befüllt (für Zeichenkette xx,x°C) In der SV-Zeichenkette xx,x°C steht auch xx,x°C, also dieser SV wird keine Maßeinheit °C angehängt, der Wert wird kommplet als xx,x°C ausgelesen und auch so in die SV geschrieben. (siehe auch Link im 1. Post)
SV Zeichenkette und Skript Hilfe
Moderator: Co-Administratoren
-
- Beiträge: 507
- Registriert: 04.12.2016, 23:30
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: SV Zeichenkette und Skript Hilfe
-
- Beiträge: 507
- Registriert: 04.12.2016, 23:30
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: SV Zeichenkette und Skript Hilfe
Sauber, damit kann ich jetzt meine SV-Zeichenkette EIN/AUS für den Ofen schonmal verarbeiten. Danke !!Cash hat geschrieben:Ich weiß nicht ob ich es richtig verstanden habe und ob das Script funktioniert
Mit diesen Script vergleicht man den Wert aus tmpA (=Käsekuchen) mit dem Wert aus der Systemvariablen "Name der Systemvariablen".Code: Alles auswählen
string tmpA = "Käsekuchen"; if(tmpA == dom.GetObject("Name der Systemvariablen").Value()){dom.GetObject("Systemvariable").State(true);}
Sofern identisch wird die Systemvariable "Systemvariable" auf true gesetzt.
Mit der anderen SV-Zeichenkette xx,x°C geht das glaube ich nicht so einfach, da sich dieser Wert ja ständig ändert und ich bräuchte daraus eine SV Zahl ohne °C und von mir aus auch ohne ,x
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: SV Zeichenkette und Skript Hilfe
Wodurch wird denn die Zeichenkette getriggert? Evtl. im gleichen Programm das Script einfach darunter packen?
Das andere geht auch. Je nach Firmwareversi0n evtl sogar recht einfach. Bin leider kein Scriptprofi.
Deslhalb müsste ich da nochmal die Scriptdoku konsultieren aber es gibt hier ja genug die das andere locker aus der Hand schreiben
Das andere geht auch. Je nach Firmwareversi0n evtl sogar recht einfach. Bin leider kein Scriptprofi.
Deslhalb müsste ich da nochmal die Scriptdoku konsultieren aber es gibt hier ja genug die das andere locker aus der Hand schreiben
-
- Beiträge: 507
- Registriert: 04.12.2016, 23:30
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: SV Zeichenkette und Skript Hilfe
Ich habe zur Abfrage ein Programm mit Zeitsteuerung programmiert (alle 5 min), es gibt leider keine Möglichkeit auf irgendwas auszulösen
Dann wird das Skript zur Abfrage der externen Werte für die SVs-Zeichenkette ausgeführt. (Nicht verwirren lassen, das Skript ist von Alchy auch wenn er darin schreibt "Sysvar Typ Zahl" werden meine SVs als Zeichenkette gefüllt, als "Zahl" funktioniert es nicht.
(für die SV-Zeichenkette-Pelletofen)
Sofort:
(für die SV-Zeichenkette-Temp.VL Ofen)
1 Sek später:
(aus SV-Zeichenkette-Pelletofen >> SV-Logikwert-PO setzen)
5 Sek. später:
10 Sek. später:
Die SV "Pelletofen" auslesen und SV "PO" setzen klappt ja schon mal.
FW ist die aktuelle: 2.29.23
Dann wird das Skript zur Abfrage der externen Werte für die SVs-Zeichenkette ausgeführt. (Nicht verwirren lassen, das Skript ist von Alchy auch wenn er darin schreibt "Sysvar Typ Zahl" werden meine SVs als Zeichenkette gefüllt, als "Zahl" funktioniert es nicht.
(für die SV-Zeichenkette-Pelletofen)
Sofort:
Code: Alles auswählen
! UVR 1611 - Temperaturdaten aus Bl-Net auslesen und in Sysvar Typ Zahl speichern by Alchy
string IP ="192.168.2.51:51";
string KNOTEN = "AA200501";
!++++++++++++ BITTE AB HIER NICHTS MEHR AENDERN ++++++++++
string index;
string name;
foreach (index, KNOTEN) {
var url = "http://"#IP#"/c_index.htm?C="#index#"";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dom.GetObject("Pelletofen").State(srueck);
}
1 Sek später:
Code: Alles auswählen
! UVR 1611 - Temperaturdaten aus Bl-Net auslesen und in Sysvar Typ Zahl speichern by Alchy
string IP ="192.168.2.51:51";
string KNOTEN = "8D200E01";
!++++++++++++ BITTE AB HIER NICHTS MEHR AENDERN ++++++++++
string index;
string name;
foreach (index, KNOTEN) {
var url = "http://"#IP#"/c_index.htm?C="#index#"";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dom.GetObject("Temp.VL Ofen").State(srueck);
}
5 Sek. später:
Code: Alles auswählen
string tmpA = "EIN";
if(tmpA == dom.GetObject("Pelletofen").Value()){dom.GetObject("PO").State(true);}
Code: Alles auswählen
string tmpA = "AUS";
if(tmpA == dom.GetObject("Pelletofen").Value()){dom.GetObject("PO").State(false);}
FW ist die aktuelle: 2.29.23
-
- Beiträge: 507
- Registriert: 04.12.2016, 23:30
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: SV Zeichenkette und Skript Hilfe
also ich bräuchte nichtmal die genauen Temperaturen...
mit irgendeinem Befehl abfragen ob die SV-Zeichenkette-Temp.VL Ofen größer als 50°C ist, dann
....dom.GetObject("Temp.VL Ofen").Value()){dom.GetObject("TEMP").State(true) setzen
mit irgendeinem Befehl abfragen ob die SV-Zeichenkette-Temp.VL Ofen größer als 50°C ist, dann
....dom.GetObject("Temp.VL Ofen").Value()){dom.GetObject("TEMP").State(true) setzen
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: SV Zeichenkette und Skript Hilfe
Probier mal unter Script testen ob dort nur die Zahl ruaskommt bzw ob es überhaupt läuft:
Gibt aber bestimmt bessere Wege. ]
Code: Alles auswählen
string tmpB = „,“;
string tmpC = dom.GetObject(„Systemvariable“).Value().StrValueByIndex(tmpB, 0);
WriteLine(tmpC);
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: SV Zeichenkette und Skript Hilfe
Ein > als auf eine Zeichenkette macht keinen Sinn. Vorher eine Zahl raus machen macht schon Sinn nur evtl sollte man das bereits beim ersten Script machen und die Systemvariable dann wirklich als Zahl anlegen
-
- Beiträge: 3734
- Registriert: 23.09.2017, 12:04
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 121 Mal
Re: SV Zeichenkette und Skript Hilfe
Guten Abend
Ich möchte als Hilfe noch mal versuchen die Aufgabenstellung Script kompatibel zu formulieren. Vielleicht wird dann die rel. einfache Aufgabe etwas schneller gelöst
Fall 1
Es existier eine Sysyvar vom Typ Zeichenkette var1
Es existiert eine Sysvar vom Typ Bool var2
Wenn der Inhalt von var1 == „EIN“
dann setze var2=true
Sonst setze var2=false
Fall 2
Es existiert eine SysVar vom Typ Zeichenkette mit dem Inhalt 21,4°C (könnte auch ein Punkt als Trennzeichen sein, s.o.) var3
Es existiert eine SysVar vom Typ Zahl var4
Nimm die linken 4 Zeichen aus var3 und schreibe diese in var4, wobei gleichzeitig eine Wandlung des Strings in eine Zahl erfolgt.
Vermutlich wäre es wegen einstelligen Temperaturen wie 5,6°C besser, die beiden rechten Zeichen abzuschneiden, statt von links zu zählen.
Ich möchte als Hilfe noch mal versuchen die Aufgabenstellung Script kompatibel zu formulieren. Vielleicht wird dann die rel. einfache Aufgabe etwas schneller gelöst
Fall 1
Es existier eine Sysyvar vom Typ Zeichenkette var1
Es existiert eine Sysvar vom Typ Bool var2
Wenn der Inhalt von var1 == „EIN“
dann setze var2=true
Sonst setze var2=false
Fall 2
Es existiert eine SysVar vom Typ Zeichenkette mit dem Inhalt 21,4°C (könnte auch ein Punkt als Trennzeichen sein, s.o.) var3
Es existiert eine SysVar vom Typ Zahl var4
Nimm die linken 4 Zeichen aus var3 und schreibe diese in var4, wobei gleichzeitig eine Wandlung des Strings in eine Zahl erfolgt.
Vermutlich wäre es wegen einstelligen Temperaturen wie 5,6°C besser, die beiden rechten Zeichen abzuschneiden, statt von links zu zählen.
-
- Beiträge: 1184
- Registriert: 09.01.2016, 17:42
- Wohnort: Sauerland
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: SV Zeichenkette und Skript Hilfe
Fall 1 ist doch erledigt?
Fall 2 würde ich direkt das ursprüngliche Script so schreiben das eine Zahl geschrieben wird und keine Zeichenkette. Wie genau sieht die Ausgabe aus? 21,6 °C oder 21,6°C.
Im ersten Fall könnte man anstelle vom Komma auch nach dem Leerzeichen suchen oder im zweiten Fall nach °.
Fall 2 würde ich direkt das ursprüngliche Script so schreiben das eine Zahl geschrieben wird und keine Zeichenkette. Wie genau sieht die Ausgabe aus? 21,6 °C oder 21,6°C.
Im ersten Fall könnte man anstelle vom Komma auch nach dem Leerzeichen suchen oder im zweiten Fall nach °.
-
- Beiträge: 507
- Registriert: 04.12.2016, 23:30
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: SV Zeichenkette und Skript Hilfe
Fall 1 setzte ich mal auf erl. ... Haken hinter.
Fall 2 kann man meiner Meinung nach nicht gleich als Zahl schreiben, weil es wird nicht nur der Temp.Wert gelesen sondern auch das °C aus diesem externen Wert. Also wenn kein Wert abgefragt werden würde, würde da nicht stehen °C sonder nix, leere SV-Zeichenkette, bei Abfrage wird in die SV-Zeichenkette kommplet xx,x °C geschrieben.
Man könnte ruhig von vorne zählen, weil der Wert immer zweistellig ist. Der Wert wird so dargestellt, bzw genau so ausgelesen, mit Komma und Leerzeichen vor °C, Temp.VL Ofen: 39,5 °C Ich habe natürlich auch schon versucht gleich eine SV-Zahl zu befüllen, da kommt aber leider als Ergebniss: ??? raus.
Fall 2 kann man meiner Meinung nach nicht gleich als Zahl schreiben, weil es wird nicht nur der Temp.Wert gelesen sondern auch das °C aus diesem externen Wert. Also wenn kein Wert abgefragt werden würde, würde da nicht stehen °C sonder nix, leere SV-Zeichenkette, bei Abfrage wird in die SV-Zeichenkette kommplet xx,x °C geschrieben.
Man könnte ruhig von vorne zählen, weil der Wert immer zweistellig ist. Der Wert wird so dargestellt, bzw genau so ausgelesen, mit Komma und Leerzeichen vor °C, Temp.VL Ofen: 39,5 °C Ich habe natürlich auch schon versucht gleich eine SV-Zahl zu befüllen, da kommt aber leider als Ergebniss: ??? raus.