HMI eigenbau. VB6, VB.NET, C#, Delphi, oder ... ?

Beiträge
8.328
Reaktionspunkte
1.898
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.

Inspiriert von diesen thread:
http://www.sps-forum.de/showthread.php?t=21187
frage ich:

Welche Programmier-Umgebung ist die beste für die Bereitstellung eines selbstgemachtes HMI ?
Wichtig ist wie einfach der Sprache und die Programmierumgebung ist zu verwenden. Ich bin kein Guru in die genannten Sprachen.

Ehrlich gesagt, es ist unwahrscheinlich, dass ich stelle um von WinCC Flexible zu eigenprogrammierung.
Aber dieses Thema interessiert mich trotzdem.

http://translate.google.com/translate_t?sl=en&tl=d
 
Ich bin auch kein Guru in diesen Sprachen,

aber mit .net kann man je nach bedarf die einfacheren Sachen mit VB lösen und wenn es ins eingemachte geht C#.

Und wenn über die Funktionen von der Express Version nicht hinauskommt gibt es auch keine Lizenz Kosten.

Habe das gesamte .net Paket installiert, mir fehlte bis jetzt aber die Zeit um mich genauer damit auseinander zu setzen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Gerade in .net sind die Unterschiede in den Programmiersprachen nicht mehr so riesig, weil man ja mit dem .net-Framework arbeitet. Es gibt war spezielle Sachen, die sich noch unterscheiden (z.B. XML in VB), die sind dann aber meist nur noch sprachspezifisch. Mircrosoft hält auf seinen Webseiten im übrigen ein paar sehr schöne Webcasts zum kostenlosen Download (man benötigt einen live-Account) bereit, die auch für Änfänger geeignet sind:
http://www.microsoft.com/germany/events/webcasts/ondemand.mspx
Unter'm Strich würde ich, wenn .net, die Sprache verwenden, die mir liegt, der Code, der erzeugt wird ist nahezu gleich.
 
Oder mir helfen meine Sache auf .NET Basis weiter zu entwickeln. Es wird erst wieder was öffentliches geben, wenn es stabil läuft und sich einfach installieren lässt. :ROFLMAO:
 
Ja, da war ein Wiki installiert. Irgendwie war das ganze recht unsicher. Da wurden dauernd Seiten in komischen Sprachen erstellt, deswegen hab ich's einfach offline genommen.
 
Nichts, solange du deine Visu öffentlich publizieren wirst.
Da finde ich dann das .NET Framework dennoch bequemer.
 
Ich kann leider nicht von Regenwasser leben. Meine Kunden muss doch etwas bezahlen für mein Arbeit.
Also, wieviel kostet den kommerzielle Version von Qt ?
 
Zuviel Werbung?
-> Hier kostenlos registrieren

Erstmals kostet eine Qt Entwicklerlizenz über 2000 Euronen (glaub so 2300).
Danach jedes Jahr so 850 Euronen.

Wir haben eine solche Lizenz und können damit kommerzielle Apps bauen.
Sonst kann man unter GPL Bedingungen auch kostenlos damit arbeiten.

http://pvbrowser.org hat aber u.a. den Vorteil, dass nur der Client Qt enthält.
Dieser wird nicht verändert, wenn Visus erstellt werden.
Der Server enthält aber keinerlei Qt Komponenten.
Deshalb kann man mit pvbrowser Visus erstellen OHNE eine Qt Lizenz zu benötigen.

Um Visus zu erstellen wird lediglich der Server (kommt ohne Qt aus) mit pvdevelop weitgehend graphisch erstellt. Neben dem eingebauten Designer kann man, wenn man möchte auch den Qt Designer zum Entwerfen der Masken verwenden. Wenn die Masken auf SVG basieren, nehmen wir inkscape.
 
Ich habe C# etwas näher angekuckt. Scheint nett zum anfang aus, aber dann vermisse ich bestimmte sachen, z.b. eine numerische Eingabefeld. Es gibt ein Text-Eingabefeld, aber man kann es nicht auf numerische werte einschräncken.
Auf das www finde ich code-Beispiele womit man das text-eingabe steuern kann, aber es wird etwas kompliziert, und genau das wollte ich vermeiden.
Es ist seltsam, dass eine solche Funktionalität nicht bereits ein Teil von .Net ist.


Perfekt wäre wenn es gibt ein Komponent mit solchen Funktionalität:
Wenn das Wert nicht editiert wird, wird das wert von SPS angezeigt.
Wenn das Wert editiert wird, wird es von Gültigheit und Min/Max geprüft bevor es in den SPS geschrieben wird.
Das editieren soll möglich zu sperren sein (z.b. wenn der Benutzer nicht den benötigte recht dazu hat).

Ich glaube, dass die einfachste Weg ist die Verwendung einer 3rd-Party-Komponente.
Habt Ihr Erfahrung mit das ?
Welche Komponenten setzen Ihr ein ?
 
Ich habe C# etwas näher angekuckt. Scheint nett zum anfang aus, aber dann vermisse ich bestimmte sachen, z.b. eine numerische Eingabefeld. Es gibt ein Text-Eingabefeld, aber man kann es nicht auf numerische werte einschräncken.
Auf das www finde ich code-Beispiele womit man das text-eingabe steuern kann, aber es wird etwas kompliziert, und genau das wollte ich vermeiden.
Es ist seltsam, dass eine solche Funktionalität nicht bereits ein Teil von .Net ist.


Perfekt wäre wenn es gibt ein Komponent mit solchen Funktionalität:
Wenn das Wert nicht editiert wird, wird das wert von SPS angezeigt.
Wenn das Wert editiert wird, wird es von Gültigheit und Min/Max geprüft bevor es in den SPS geschrieben wird.
Das editieren soll möglich zu sperren sein (z.b. wenn der Benutzer nicht den benötigte recht dazu hat).

Ich glaube, dass die einfachste Weg ist die Verwendung einer 3rd-Party-Komponente.
Habt Ihr Erfahrung mit das ?
Welche Komponenten setzen Ihr ein ?
Die WinCC-typischen Komponenten habe ich mir zum Beispiel selbst gebastelt.

Für manche Zwecke reicht vielleicht die MaskeTextBox.
 

Anhänge

  • MaskedTextBox.JPG
    MaskedTextBox.JPG
    151,6 KB · Aufrufe: 100
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde dafür nach wie vor JAVA verwenden, aus folgenden Gründen:
- Es steht auf jeder Plattform einschließlich PDAs und Handys zur Verfügung. Damit läßt sich Standard-Consumer-Hardware als (mobile) Bedieneinheit nutzen.
- JAVA (und auch .NET) können zur Laufzeit neue Klassen einbinden. "Oben" (in den Seiten der Visualisierung) kann man einfach ein neues Element kreieren ohne die ganze Anwendung neu zu kompilieren und ohne den kompletten Quellcode zu benötigen odeer zu kennen. "Unten" (zur Feldebene hin) kann man ein anderes Datenaustausch-Protokoll (und damit eine neue Steuerung) ebenso einfach einbinden. Wenn man eine kleine Abstraktionsschicht zwischen der HMI-Grafik und dem AWT/Swing/JFC einfügt kann man auch "seitwärts" einfach neue Grafik- und Eingabegeräte nutzen.

Natürlich kann man den Vorteil von JAVA und .NET, das dynamische Nachladen von Klassen, auch in jeder anderen Programmiersprache nachbilden. Unzählige Anwendungen, die "plug-ins" nutzen können und mehrheitlich in C++ (es darf auch C sein, z.B. GTK und Gimp) geschrieben sind, beweisen das. Nur muß man sich dann darum selbst kümmern und die Unterstützung durch das OS ist immer anders:
Win32:LoadLibrary
Unix:dlopen
Symbian:???
Win32:GetProcAddress
Unix:dlsym
Symbian:???

Als Nachteil sehe ich bei JAVA und .NET die dynamische Speicherverwaltung mit garbage collector: Es ist zwar bequem, sich um die Entsorgung dynamisch belegten Speichers nicht kümmern zu müssen, aber es gibt dann plötzlich eine "Gedenkminute" (oder Sekunden) wenn der GC aufräumt.
Eine HMI-Anwendung sollte am besten genauso zügig reagieren wie ein mechanischer Taster.
Die Wartezeiten für den GC lassen sich vermeiden, indem man mit der Anforderung neuen Speichers vorsichtig umgeht. Eine HMI-Anwendung braucht meist keinen neuen Speicher, solange dieselbe Seite angezeigt wird.
 
Hallo Zottel,

was macht dein Bello ?

Zu Deinem Posting muss ich auch was sagen.
Wenn Du schon mit einer Hochsprache,
wie Java eine Visualisierung machen willst,
musst Du doch bei Adam und Eva anfangen oder
hast Du da schon eine Basissoftware,
die Dir den grössten Teil der Arbeit abnimmt ?

Wer mit Java oder C# umgehen kann sollte mit
http://pvbrowser.org
auch keine Probleme haben.

Darin haben wir z.B. Dein libnodave schon eingebunden,
so dass sich die Anwender nicht mehr auf Programmierebene begeben müssen.
Es reicht einfach eine INI Datei auszufüllen und die Datenerfassung mit Deinem libnodave ist fertig.

Da pvbrowser C/C++ ist, können da also problemlos Fremdbibliotheken,
wie Dein libnodave mit eingebunden werden.
Im Prinzip kann man da jedes Protokoll mit erschlagen.
Momentan kann pvbrowser von Hause aus

Modbus (Serial Line and TCP)
Siemens TCP
Siemens PPI
Ethernet_IP
EIBnet/KNX
OPC XML-DA
PROFIBUS
CAN

http://pvbrowser.de/pvbrowser/index.php?menu=4&topic=4&subtopic=2

Probier doch mal selber aus.
Du kannst ja C/C++.
Vielleicht ergeben sich ja da irgend welche Anknüpfungspunkte.

Jedenfalls wird Dir mit pvbrowser die meiste Arbeit schon abgenommen.
Du brauchst wirklich nur Deine eigene Logik in das generierte Framework einzusetzen.

Viele Grüsse:
pvbrowser
 
Ich würde dafür nach wie vor JAVA verwenden
Du hast schon Recht und die Gründe sind einleuchtend. Bei .NET ist halt aus den Express Editions schnell ein Editor für die eigene HMI-Applikation gemacht. Bei Java find' ich mich da nicht zurecht. Momentan überlege ich auch, ob ich nicht lieber etwas mit Java machen sollte. Eine Idee wäre, den SVG-Standard so zu erweitern, dass er etwas für die PV nutzt. Dafür müsste man einen guten, absolut dem Standard nahestehenden SVG Viewer haben, den man um die Features erweitert. Die Prozessdaten würde ich dann per Webservice anbieten, so dass das neue Viewer-Applet daher seine Daten zur Animation bezieht. Was hälst du davon? Gutes Konzept?
 
Zurück
Oben