# Prozess-Visualisierung selbst gemacht ?



## Jens_Ohm (12 April 2006)

Hallo Leute,


 ich arbeite als Mess und Regeltechniker in der Entwicklungsabteilung eines kleinen Unternehmens (15 Mitarbeiter). Wir stellen u.a. Geräte her, die Oberflächen schneller altern lassen (UV-Bestrahlung, hohe und niedrige Temperaturen, nass/chemische Einflüsse usw.)
Als Regelungen setzen wir SPSen der Firma B&R (PP41 /System 2003 CP476) ein, die Kommunikation erfolgt via Ethernet (IF681.86).
Auch kommen einfache Mikroprozessor-Regler mit RS485/232 Schnittstelle zum Einsatz die über das Modbus Protokoll kommunizieren. Die Regler werden über einen Schnittstellenwandler auf Ethernet umgesetzt.
Wir haben eine Prozessdatenvisualisierung mit dem Packet Webfactory auf Browserbasis (IE) entwickeln lassen. Die Daten bekommt das Visualisierung-Packet über OPC.
  Das alles funktioniert problemlos.
Aber je mehr ich mich mit den Busprotokollen und dem Thema Vernetzung beschäftigt habe (ca. 1 Jahr), umso mehr komme ich zu der Einstellung: Das muß ich doch auch selber machen können.
  Also versuche ich mal folgendes Projekt.
  Ich möchte Messwerte (Temperaturen) erfassen und in einer Kurve (Trend) Darstellen.
  4 Werte -10 bis 100°C in 10tel Auflösung.
  Die Daten bekomme ich momentan per OPC, ich kann sie aber auch direkt bei den jeweiligen Maschinen abholen.
  Mit anderen Worten:
  Ich möchte mir meine eigene Prozess-Daten-Visualisierung programmieren.
  Bevorzugt möchte ich OPC verwenden, da ich so von dem Steuerungs- als auch vom Regler-Hersteller unabhängig bleibe.
  Die Messwerte möchte ich in eine Datenbank ablegen und in Diagrammen(Trends) darstellen (die aktuellen wie die historischen).
Da mir eine Aktualisierung der Daten im Minutentakt ausreicht, habe ich an JAVA als Programmiersprache gedacht. Auch weil es so schön Plattform übergreifend ist.
  Was brauche ich alles? (das JDK ist nicht gemeint)
  z.B. für die Datenbank etc.
  Ich habe gesehen dass es z.B. für Visual Basic fertige Trend-Module als ActivX-Applets gibt.
  Gibt es so etwas auch für Java, vielleicht sogar als Open Source?


 Die Programmierung möchte schon selber machen, aber wenn es einem leichter gemacht werden könnte. Erstmal ist das Projekt zum reinen Know-how Aufbau gedacht. Vielleicht fällt ja als Abfallprodukt was Verwertbares ab ;-))).


  so jetzt bin ich mal gespannt auf eure Vorschläge und Kommentare
  Jens


----------



## seeba (12 April 2006)

Jens_Ohm schrieb:
			
		

> Hallo Leute,
> 
> 
> ich arbeite als Mess und Regeltechniker in der Entwicklungsabteilung eines kleinen Unternehmens (15 Mitarbeiter). Wir stellen u.a. Geräte her, die Oberflächen schneller altern lassen (UV-Bestrahlung, hohe und niedrige Temperaturen, nass/chemische Einflüsse usw.)
> ...


Hallo Jens,
wir hatten uns ja schon einmal unterhalten. Ein paar Daten darzustellen sollte nicht sehr schwierig sein. Wenn du deine Visualisierung webbasiert aufbauen willst, solltest du mit einer Datenbank für die Online- und Archiv-Werte arbeiten. Hier ist dann MySQL zu erwähnen, welches einen speziellen Tabellentyp anbietet, der nur in der Datenbank gehalten wird. Leider ist mir kein anderes RDBMS bekannt, welches diese Funktion auch bietet, denn die Lizenzhandhabung bei MySQL sagt mir in der letzten Zeit nicht mehr zu. Deshalb werde ich einen eigenen TCP Server für die Online-Werte programmieren und für die Archivwerte PostgreSQL verwenden. Zu Java kann ich nicht viel sagen, aber ich meine mich an eine Open Source OPC Java Bridge zu erinnern. Man müsste dann auf seinem Prozessserver eine Applikation laufen lassen, die Online- und Archiv-Werte in die Datenbank befördert. Als Anzeigeclient könnte man dann eine Web-Applikation in Java machen. Es gibt auch sicher irgendwo eine freie Bibliothek zum Erstellen von Diagrammen usw.! 

Ich hoffe, dass ich dir wenigstens etwas helfen konnte.

Gruß Sebastian


----------



## Ralle (12 April 2006)

Zottels Visual ist wohl auch Java-basiert, da gibt es sicherlich Anregungen für dich.


----------



## afk (12 April 2006)

Jens_Ohm schrieb:
			
		

> ich arbeite als Mess und Regeltechniker in der Entwicklungsabteilung eines kleinen Unternehmens (15 Mitarbeiter).


15 Mitarbeiter in der Entwicklungsabteilung oder in der ganzen Firma ?



			
				Jens_Ohm schrieb:
			
		

> Wir haben eine Prozessdatenvisualisierung mit dem Packet Webfactory auf Browserbasis (IE) entwickeln lassen. Die Daten bekommt das Visualisierung-Packet über OPC. Das alles funktioniert problemlos.


Damit haben wir auch viel gearbeitet. Mittlerweile haben wird Webfactory aber durch eine Eigenentwicklung ersetzt.



			
				Jens_Ohm schrieb:
			
		

> Aber je mehr ich mich mit den Busprotokollen und dem Thema Vernetzung beschäftigt habe (ca. 1 Jahr), umso mehr komme ich zu der Einstellung: Das muß ich doch auch selber machen können.


Das geht schon, aber die komplette Funktionalität von Webfactory selbst zu implementieren ist schon ein entsprechender Aufwand.



			
				Jens_Ohm schrieb:
			
		

> Gibt es so etwas auch für Java, vielleicht sogar als Open Source?


Schau dir doch mal Visual an, das ist Open Source und in Java implementiert. (Mist, Ralle war schneller )


@Seeba


			
				seeba schrieb:
			
		

> Hier ist dann MySQL zu erwähnen, welches einen speziellen Tabellentyp anbietet, der nur in der Datenbank gehalten wird.


Wie meinst Du das ?


Gruß Axel


----------



## seeba (12 April 2006)

afk schrieb:
			
		

> @Seeba
> 
> Wie meinst Du das ?


Es gibt sogennante HEAP-Tabellen bei denen die Definition der Spalten usw. zwar in einer Datei steht, aber der Inhalt nur im Arbeitsspeicher gehalten wird. Natürlich ist der dann bei einem Absturz oder Neustart des Serverprozesses weg, aber es schont die Festplatte, wenn man die Online-Werte schnell und ständig aktualisiert.


----------



## afk (12 April 2006)

seeba schrieb:
			
		

> Es gibt sogennante HEAP-Tabellen bei denen die Definition der Spalten usw. zwar in einer Datei steht, aber der Inhalt nur im Arbeitsspeicher gehalten wird. Natürlich ist der dann bei einem Absturz oder Neustart des Serverprozesses weg, aber es schont die Festplatte, wenn man die Online-Werte schnell und ständig aktualisiert.


HEAP-Tabellen, alles klar. Mich hatte verwirrt, daß Du was von Tabellen geschrieben hast, die nur in der Datenbank gehalten werden, denn das ist ja eigentlich immer der Fall.

Ich denke, mit den temporären Tabellen im SQL-Server kannst Du das gleiche erreichen, wenn Du ein paar Unterschiede in der Handhabung berücksichtigst.
Der ist allerdings nicht plattformunabhängig.


Gruß Axel


----------



## seeba (12 April 2006)

afk schrieb:
			
		

> HEAP-Tabellen, alles klar. Mich hatte verwirrt, daß Du was von Tabellen geschrieben hast, die nur in der Datenbank gehalten werden, denn das ist ja eigentlich immer der Fall.
> 
> Ich denke, mit den temporären Tabellen im SQL-Server kannst Du das gleiche erreichen, wenn Du ein paar Unterschiede in der Handhabung berücksichtigst.
> Der ist allerdings nicht plattformunabhängig.
> ...


Temporäre Tabellen gelten doch immer nur für die aktuelle Verbindung, oder?


----------



## afk (12 April 2006)

seeba schrieb:
			
		

> Temporäre Tabellen gelten doch immer nur für die aktuelle Verbindung, oder?


Es gibt globale temporäre Tabellen (##Table statt #Table), die für alle Verbindungen gültig sind. So eine Tabelle wird dann auch nicht automatisch nach dem Schließen der Verbindung, die sie erzeugt hat, gelöscht, sondern erst nach dem Schließen der letzten Verbindung, von der sie referenziert wird.


Gruß Axel


----------



## seeba (12 April 2006)

afk schrieb:
			
		

> Es gibt globale temporäre Tabellen (##Table statt #Table), die für alle Verbindungen gültig sind. So eine Tabelle wird dann auch nicht automatisch nach dem Schließen der Verbindung, die sie erzeugt hat, gelöscht, sondern erst nach dem Schließen der letzten Verbindung, von der sie referenziert wird.
> 
> 
> Gruß Axel


Vielen vielen Dank, Axel! 

Gruß Sebastian


----------



## arcis (13 April 2006)

*Qt*

Zitat:

"Da mir eine Aktualisierung der Daten im Minutentakt ausreicht, habe ich an JAVA als Programmiersprache gedacht. Auch weil es so schön Plattform übergreifend ist."

QT ist Dein Freund für Visualisierungen. Plattformübergreifend, WIN, MAC, X11.

http://www.trolltech.com/products/qt/index.html
http://doc.trolltech.com/4.1/index.html
http://doc.trolltech.com/4.1/classes.html
http://doc.trolltech.com/4.1/qsqldatabase.html


----------



## Jens_Ohm (18 April 2006)

*bis hierher   vielen Dank erstmal*

@ afk  
  15 Mitarbeiter incl. Putzfrau + Chefe
 Die Entwicklung besteht aus 1 ½ Mitarbeitern (böse Zungen behaupten ich sei 1 ½ , aber lassen wir das). Das meint 3 Mitarbeiter können sich die Hälfte ihrer Zeit Gedanken um Neues machen, die Restzeit geht fürs Tagesgeschäft drauf.


  Erstmal Danke für die prompte Reaktion.
  Visual hab ich geladen und schaus mir gleich mal an. Auch ein paar dicke Bücher habe ich schon.
Die eine oder andere WWW Adresse unter der ich interessanten Javacode finden kann wäre nett. Ich werde bestimmt noch ne Million Fragen haben und halte euch auf dem Laufenden (wenn es interessiert). Da dies alles programmiertechnisches Neuland für mich ist, wird es auch ne Weile brauchen, wohl auch weil ich eigentlich nur Leerlaufzeit dafür verwenden kann. Aber die großen Projekte hab ich die letzten 1 ½ Jahre hinter mich gebracht, jetzt ist nur Produkt- Pflege, Präsentation und Einweisung gefragt. Gegenüber der Entwicklungsphase ist das wie Urlaub ;-).

  Jens


----------

