Hallo liebe Java Programmierer
Ich bin gelernter Steuerungstechniker und mach dies auch schon über 10 Jahre. Ich meinem Haus läuft eine Beckhoff SPS, welche mein gesamtes Haus inkl. der Zentralheizung steuert. Die Software kommt natürlich von mir. Ich würde jetzt gerne einige Funktionen, welche nicht Echtzeitfähig sind in Java umsetzten. Ich bin in Java natürlich noch ein Anfänger, da ich erst seit ca. 1 Jahr ab und zu in meiner Freizeit kleine Lösungen in Java umsetzte. Keine Angst ich hab schon gegoogelt und ich will auch keinen Code von euch geschrieben haben. Es würde mich schon reichen, wenn man einen Tipp gibt welche Möglichkeiten es in Java gibt um folgende Probleme zu lösen.
Wie gesagt das Hauptprogramm läuft in meiner SPS und das ist gut so, weil das Echtzeitfähig sein muss. Was ich jetzt gerne machen würde ist eine Prozessdatenerfassung. Von allen meinen Sensoren Wetterstation, PT1000´s in der Zentralheizung PT1000 von der Solaranlage, Temperatur der einzelnen Räume usw. Des weiteren würde ich gerne eine Visualiesierung über mein Android Tablet machen.
Die einzelnen Gewerke Funktionieren ja auch.
Ich hab mir das so vorgestellt, das ich einen eigenen Thread mache, welche meine Visualisierung managed/Kommunikation zu meine Android-App macht. Ein Android App mit der Kommunikation zu meinem Java-Server läuft natürlich nur sehr primitiv und das Apps ist "hässlich" aber es läuft
Einen weiteren Thread hab ich gemacht, welcher mir Zyklisch die Prozessdaten in eine SQL Datenbank schreibt. Auch dieser Thread läuft rudimentär. Aber er läuft.
Die Kommunikation mit meiner SPS, das heißt mit den Variablen in der SPS läuft auch. Das läuft im Gegensatz zu den 2 anderen Sachen gut, da das mehr meine Welt ist.
So mein Problem ist jetzt, wie realisiere ich das schön in Java. In der Steuerungstechnik würde ich jetzt Globale Variablen machen, welche vom Thread mit den SPS Variablen gespeist bzw. gelesen wird und alle anderen Threads oder Funktionen könnten diese Variablen lesen oder schreiben.
Mein "wichtigster" Thread ist ja der, der mit der SPS kommuniziert. Das heißt hier lese ich zyklisch Daten aus. Diese Daten sollten aber von den anderen 2 Prozessen ja verwenden werden können. Und speziell der Thread mit dem Java-Server muss natürlich die Daten welchen von der VISU kommen auch in den Thread zu der SPS Kommunikation bekommen, da ich dann mit diesen Informationen wieder Variablen in der SPS schreiben, damit ich von der VISU aus auch Lichter, Jalousien usw. schalten kann.
Ist es überhaupt der richtige Weg alles in einen eigenen Thread zu machen oder gibt es da besseres??? Wenn ja, wie mach ich das mit dem Informationsausstausch. Über eine "globale" Datenbank oder doch über eine Interthread-Kommunikation (hab ich auch schon mal programmiert, scheint aber für mich nicht das richtige zu sein).
Ich wäre froh um jeden Input, damit ich nicht weiter "sinnlos" im Internet suchen muss.
Ich bin gelernter Steuerungstechniker und mach dies auch schon über 10 Jahre. Ich meinem Haus läuft eine Beckhoff SPS, welche mein gesamtes Haus inkl. der Zentralheizung steuert. Die Software kommt natürlich von mir. Ich würde jetzt gerne einige Funktionen, welche nicht Echtzeitfähig sind in Java umsetzten. Ich bin in Java natürlich noch ein Anfänger, da ich erst seit ca. 1 Jahr ab und zu in meiner Freizeit kleine Lösungen in Java umsetzte. Keine Angst ich hab schon gegoogelt und ich will auch keinen Code von euch geschrieben haben. Es würde mich schon reichen, wenn man einen Tipp gibt welche Möglichkeiten es in Java gibt um folgende Probleme zu lösen.
Wie gesagt das Hauptprogramm läuft in meiner SPS und das ist gut so, weil das Echtzeitfähig sein muss. Was ich jetzt gerne machen würde ist eine Prozessdatenerfassung. Von allen meinen Sensoren Wetterstation, PT1000´s in der Zentralheizung PT1000 von der Solaranlage, Temperatur der einzelnen Räume usw. Des weiteren würde ich gerne eine Visualiesierung über mein Android Tablet machen.
Die einzelnen Gewerke Funktionieren ja auch.
Ich hab mir das so vorgestellt, das ich einen eigenen Thread mache, welche meine Visualisierung managed/Kommunikation zu meine Android-App macht. Ein Android App mit der Kommunikation zu meinem Java-Server läuft natürlich nur sehr primitiv und das Apps ist "hässlich" aber es läuft
Einen weiteren Thread hab ich gemacht, welcher mir Zyklisch die Prozessdaten in eine SQL Datenbank schreibt. Auch dieser Thread läuft rudimentär. Aber er läuft.
Die Kommunikation mit meiner SPS, das heißt mit den Variablen in der SPS läuft auch. Das läuft im Gegensatz zu den 2 anderen Sachen gut, da das mehr meine Welt ist.
So mein Problem ist jetzt, wie realisiere ich das schön in Java. In der Steuerungstechnik würde ich jetzt Globale Variablen machen, welche vom Thread mit den SPS Variablen gespeist bzw. gelesen wird und alle anderen Threads oder Funktionen könnten diese Variablen lesen oder schreiben.
Mein "wichtigster" Thread ist ja der, der mit der SPS kommuniziert. Das heißt hier lese ich zyklisch Daten aus. Diese Daten sollten aber von den anderen 2 Prozessen ja verwenden werden können. Und speziell der Thread mit dem Java-Server muss natürlich die Daten welchen von der VISU kommen auch in den Thread zu der SPS Kommunikation bekommen, da ich dann mit diesen Informationen wieder Variablen in der SPS schreiben, damit ich von der VISU aus auch Lichter, Jalousien usw. schalten kann.
Ist es überhaupt der richtige Weg alles in einen eigenen Thread zu machen oder gibt es da besseres??? Wenn ja, wie mach ich das mit dem Informationsausstausch. Über eine "globale" Datenbank oder doch über eine Interthread-Kommunikation (hab ich auch schon mal programmiert, scheint aber für mich nicht das richtige zu sein).
Ich wäre froh um jeden Input, damit ich nicht weiter "sinnlos" im Internet suchen muss.