da mein akt. Projekt zum M-Bus auslesen momentan etwas ins stocken geraten ist, würd ich gern das nächste Vorhaben angehen. Über die serielle Schnittstelle erhalte ich Daten meiner Wärmepumpe und kann bei Bedarf auch Parameter setzen.
Wie genau binde ich die Daten in IPS ein? Da ich IPS-Anfänger bin, bitte ich um Verstädnis, dass noch nicht alle Tricks draufhabe :rolleyes:
Ich hab von der Firma die Protokollbeschreibung angefordert und hänge dieses hier mit ran.
Vielen Dank im voraus für Eure Tips/Unterstützung.
Viele Grüße, Kay.
P.S. leider ist das PDF 50kb zu groß , so dass ich nach txt konvertieren mußte…
hab mal die akt. IPS-Ansicht und den Dump angehangen. Was mir noch nicht klar ist, wem ich nun wie was zuweise…Beim abarbeiten des Kontexmenüs komme ich an eine Stelle, bei der eine Skriptdatei entweder angelegt/hochgeladen werden soll…Leg ich für die Variable eine neue Skriptdatei an…mit dem Inhalt der von Dir genannten 3 Zeilen?
hihi…hast recht, liegt wohl an meiner Bildschirmauflösung - ich hoffe, der Anhang hier ist ok…hm, muß man wirklich voll aufzoomen… Der Dump ist vom Debug des ComPorts, oder wär Dir Hex-Ansicht lieber?
Kleiner Tip, leg dir Kategorien mit eindeutigen Namen an, Scripte und Variablen rein. Gib dem Comport einen eindeutigen Namen, dieser bleibt in den I/O Instanzen.
Das sieht doch dann schon mal gut aus. Ein bischen Ordnung rein und dann passt das.
Hier mal etwas Lektüre zur Registervariable und die Auswertung.
nett von Dir, dass Du mir Hausaufgaben verpasst hast …werd ich sicherlich auch nicht drumrumkommen. Aber wie immer ist das eine Zeitfrage und den Kopf muß man auch frei haben dafür - ist ok.
Ich hab nochmal einen Debug-Shot(ASCII) rangehangen, da mir beim Ansehen noch Fragen ankamen…
Irgendwie müssen die Datensätze sicherlich aufbereitet werden, da zu jedem Wert(Integer/Float/Bolean) auch dessen Bezeichnung(char?) übermittelt wird und dass noch über mehrere Zeilen…
Neben den permanent ausgegebenen Daten wie Temperaturen, werden auch Pumpenschaltzustände/Errorcodes etc. ausgegeben…
Weiterhin kann man auch bestimmte Werte z.B. Boilersoll ändern…
Wie löst man das alles, oder mach ich mir darüber eher zuviel Gedanken?
So jetzt gehts erstmal 3 Tage auf Dienstreise, mal sehen, ob ich reinschauen kann…
Schönen Abend noch, Kay.
bei meine Alpha Innotec scheint es ein wenig ähnlich wie bei deiner Pumpe zu sein. Schmeiss alles, von einem Auslesevorgang in einen String rein. Wenn ich das auf die schnelle richtig gesehen habe, trennst du den String dann schön bei jedem „:“ auf. Dann musst natürlich auswerten: war der davorgehörige Stringteil = Vorlauf dann schreib den Wert Vorlauf in die Variable Vorlauf.
Ist einmalige Fummelarbeit, aber wenn Du die Werte mal alle drin hast, wirst staunen, auf welche Erkenntnisse du über deine Wärmepumpe und dein Haus stösst *g
hab mal das kurze Script bischen geändert, dabei fiel mir auf, daß das senden von „M“ defacto unerheblich ist…zumindest bei dieser Konstellation…
Was muss ich davon halten?
Gruß, Kay.
…so ist es, siehe Auszug:
„…Die Heizungsregelung sendet in einem fixen Intervall von 5 s ein ASCII-Protokoll auf die
serielle Schnittstelle, solange DSR/DCD (Data Set Ready) an der Heizungsregelung
aktiv ist: Im Terminalprogramm des PC muss deshalb DTR aktiv sein, damit die
Heizungsregelung aktiv Daten sendet.
Alternativ können vom PC mit Befehlen Daten von der Heizungsregelung angefordert
werden – die Regelung antwortet unabhängig vom DSR/DCD-Signal. Am Ende des
Befehls muss CR LF gesendet werden (0x0D, 0x0A), damit die Heizungsregelung
antwortet: Die Antwort ist „1“ für Befehl verstanden und ausgeführt (alte Version „Y“)
bzw. die angeforderten Daten (z.B. Messwerteliste) oder „0“ für Befehl nicht verstanden,
Parameter gesperrt oder nicht veränderbar (alte Version „N“)…“
Da ich aber vorhabe, möglichst differenziert auszuwerten, also z.B. Temperaturen getrennt von Ein-/Ausgangsabfragen ggfs. Steuerbefehlen usw. würde das bedeuten, ich darf „DTR“ nicht aktivieren…??? Benötigt man dann also nur die Zeile COMPort_SendText(12345, „M“.chr(13).chr(10)); und variire den Inhalt des Argumentes? Die Antwort/Daten müßte ich dann aber sicherlich(in einer Variablen) abspeichern? Hm.
…soooo hab alles noch mal eingerichtet/siehe Anhänge), ich hoffe, soweit stimmt alle bis hierher(?). Falls ich es richtig verstanden habe, kann ich jetzt den Inhalt der Registervariablen auslesen und ggfs. weiterverarbeiten. Leider kommt der Doppelpunkt nicht in jedem Datensatz vor…was kann man da machen?
2 Scripts, eins zum Senden, eins zum Empfangen. Das Script zum Empfangen wird der Registervariable zugewiesen. In das Sendescript schreibst Du dein Comport…usw.
hm…offensichtlich versteh ich hier nur „Bahnhof“…wo z.B. soll die Textdatei zu finden sein. Weiterhin bekomme ich eine Fehlermeldung bei der Skriptausführung - siehe Anhang
…die Textdatei findest Du im IPS-Verzeichnis. Das Script kannst Du nicht von Hand ausführen deswegen sollst DU 2 Scripts anlegen und das Sendescript ausführen.
Die Daten landen automatisch im Empfangsscript, wenn Du dieses der Registervariable zugewiesen hast.
Wenn Du dieses Skript selber ausführst geht es nicht. Es muss über die Registervariable laufen. Wenn die Registervariable dann etwas empfängt steht es in der waermepumpe.txt drin.