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

Zuviel Werbung?
-> Hier kostenlos registrieren
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?

http://pvbrowser.de/pvbrowser/doc/manual/de_p33.html
 
Hallo Rainer,
ich bin eher dafür die Animationsinformationen im SVG-File einzubauen.
Geht sowas auch?

Liebe Grüße,
Sebastian
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rainer,
ich bin eher dafür die Animationsinformationen im SVG-File einzubauen.
Geht sowas auch?

Neben der eigentlichen Grafik kann man in SVG beliebige weitere Eigenschaften / Texte einbauen, die nicht vom Viewer sondern von Dir selber interpretiert werden.

siehe: pvbrowser:beispiel... in dieser SVG Grafik

PS: die forensoftware hat probleme, die svg richtig rüber zu bringen :-(

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
id="svg2"
sodipodi:version="0.32"
inkscape:version="0.46"
sodipodi:docname="murx.svg"
inkscape:eek:utput_extension="org.inkscape.output.svg.inkscape">
<defs
id="defs4">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective10" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="350"
inkscape:cy="520"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1280"
inkscape:window-height="734"
inkscape:window-x="0"
inkscape:window-y="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:0.97971018;fill:#003b00;fill-opacity:1;stroke:#674a00;stroke-width:0;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect2380"
width="85.714287"
height="65.714287"
x="74.285713"
y="75.219322"
pvbrowser:beispiel="hier irgend was einbauen" />
</g>
</svg>
 
So hab ich mir das auch gedacht. Dann fehlt nur noch der passende Viewer, der meine Eigenschaften interpretieren kann. ;) Hast du da eine passende Basis?
 
So hab ich mir das auch gedacht. Dann fehlt nur noch der passende Viewer, der meine Eigenschaften interpretieren kann. ;) Hast du da eine passende Basis?

Der SVG Viewer wird von Qt gestellt und ist schon in pvbrowser integriert.
Solche Eigenschaften "missbrauchen" wir auch schon als INI-Daten.
Ja, die passende Basis habe ich schon, pvbrowser :)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Schwieriges Thema

Hallo,

wir haben bis vor 3 Jahren mit VB6 entwickelt. Wir haben eine fertigen "Treiber" zu S7, welcher auf der Schnittstelle von DeltaLogic beruht.
Unserer Treiber vereinfacht die Komunikation mit der S7 durch unsere VB Anwendung. Allerdings haben wird im Moment keine Absicht das ganze von VB6 in .Net zu konvertieren, da kein entsprechendes Projekt ansteht.

Begonnen haben wir im Jahre 2000 mit dem ersten Projekt und dies hat sich dann weiterentwickelt und basierte auf ActiveX Controls.
Mit den heutigen Entwicklungswerkzeugen würde ich auf jeden Fall einiges anders Lösen. Allerdings bin ich der Meinung, dass das .Net Framwork die Richtigen Werkzeuge bereitstellt, also entweder C# oder VB.Net, da ziemlich "einfach" zu programmieren. Es wird einem viel Verwaltungsarbeit abgenommen und man kann sich auf das Wesentliche konzentrieren.

Also mein Rat ist das .Net Framework.

Gruß
Thorsten
 
Also mein Rat ist das .Net Framework.
Aufgrund eurer Erfahrungen mit VB6 finde ich das ein seltsames Fazit.
Bei .Net seid ihr dann wieder von den Änderungen seitens Microsoft am .Net-Framework abhängig.
Hättet ihr damals den S7-Treiber in C programmiert, so wäre er heute (und ich schätze mal dass es einen C-Compiler für die gängigen Prozessor-Architekturen in 10 Jahren immer noch geben wird) immer noch zu gebrauchen - siehe auch Libnodave, welches aufgrund der BSD-Sockets nichtmal auf Windows oder Linux beschränkt ist.

Gruß
Thomas
 
Aufgrund eurer Erfahrungen mit VB6 finde ich das ein seltsames Fazit.
Bei .Net seid ihr dann wieder von den Änderungen seitens Microsoft am .Net-Framework abhängig.
Hättet ihr damals den S7-Treiber in C programmiert, so wäre er heute (und ich schätze mal dass es einen C-Compiler für die gängigen Prozessor-Architekturen in 10 Jahren immer noch geben wird) immer noch zu gebrauchen - siehe auch Libnodave, welches aufgrund der BSD-Sockets nichtmal auf Windows oder Linux beschränkt ist.

Gruß
Thomas
Tja, ganz so einfach ist es nicht. In C geschriebene Programme sind in .net grundsätzlich unmanaged. Und die .net Programme sind managed. Deshalb wird auch dafür ein entsprechender Wrapper benötigt. Und diesen kann man aber auch für VB6-DLLs und ActiveX-Komponenten erstellen.
Darüber hinaus muss bei der portablen Programmierung nicht nur auf die BSD-Sockets geachtet werden. Zwischen Linux und Windows gibt es noch deutlich mehr Fallstricke. Und wenn dann noch WinCE ins Spiel kommt, wird es noch einmal lustiger.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Darüber hinaus muss bei der portablen Programmierung nicht nur auf die BSD-Sockets geachtet werden. Zwischen Linux und Windows gibt es noch deutlich mehr Fallstricke. Und wenn dann noch WinCE ins Spiel kommt, wird es noch einmal lustiger.

Dann will ich mal etwas Reklame für Qt machen,
das ist nämlich eine Alternative zu .NET die auch noch portabel ist.

http://trolltech.com/products/appdev

Man kann also mit 1 Sourcecode Programme estellen, die auf
Linux/Unix/Windows/OS X/Embedded Linux und Windows CE laufen !!!

Wenn man eine portable Bibliothek in C/C++ haben will,
braucht man die Systemabhängigkeiten nur konsequent kapseln und per
#ifdef für die einzelnen Plattformen zu implementieren.

Wie das aussehen kann will ich hier mal an unserer Time Klasse zeigen:
http://pvbrowser.de/pvbrowser/sf/manual/rllib/html/classrlTime.html#58e753a2b74eea66ef8df028f266f7e2

Seht euch auch mal die anderen Klassen dort an.
Durch die Verwendung der #ifdef innerhalb der Methoden der Bibliothek sind
Programme, die darauf basieren portabel.
http://pvbrowser.de/pvbrowser/sf/manual/rllib/html/classes.html
 
Hallo Rainer,
wenn ich qt im professionellen Bereich einsetze (keine Open Source Software), dann kostet das Teil richtig Geld. Und zwar für jedes Betriebssystem und für jedes einzelnen Module und für jeden Entwickler. Entwicklerwechsel nur alle x Monate zulässig ... Die "freie" Version die bei Borland mal mitgeliefert wurde, war auch nicht der Perfomancebrüller.
Wir haben uns deshalb für das Konfigurationsprogramm von AGLink für wxwidgets entschieden. Reicht dafür vollkommen aus (Anforderungen sind hier nicht so groß), kostet auch im professionellen Bereich nichts und braucht genauso viel Zeit zur Einarbeitung wie qt. AGLink selber kommt ganz ohne fremde GUI-Bibliothek aus und ist für Win32 (einschließlich .net), WinCE und Linux verfügbar.
Nichts desto trotz halte ich persönlich derzeit .net und mono für eine recht interessante Alternative zu wxwidgets und auch zu qt. Die Jungs hinter mono scheinen rech fit zu sein.
 
Hallo Rainer,
wenn ich qt im professionellen Bereich einsetze (keine Open Source Software), dann kostet das Teil richtig Geld. Und zwar für jedes Betriebssystem und für jedes einzelnen Module und für jeden Entwickler. Entwicklerwechsel nur alle x Monate zulässig ...

Hallo Rainer,
wir haben eine kommerzielle Qt Lizenz. Aber bei dem pvbrowser braucht man KEINE Qt Lizenz, denn nur der Client beinhaltet Qt und deshalb ist da die GPL Version vollkommen ausreichend (der Client wird ja nicht vom Entwickler einer Visualisierung verändert). Der Server, um den es bei pvbrowser ja eigentlich geht, beinhaltet KEIN Qt.

Der Client entspricht ja sowas wie Firefox.
Und der Server sowas wie Apache.
Dabei können Client und Server ja auch komplett verschiedene Lizenzen haben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Rainer,
wir haben eine kommerzielle Qt Lizenz. Aber bei dem pvbrowser braucht man KEINE Qt Lizenz, denn nur der Client beinhaltet Qt und deshalb ist da die GPL Version vollkommen ausreichend (der Client wird ja nicht vom Entwickler einer Visualisierung verändert). Der Server, um den es bei pvbrowser ja eigentlich geht, beinhaltet KEIN Qt.

Der Client entspricht ja sowas wie Firefox.
Und der Server sowas wie Apache.
Dabei können Client und Server ja auch komplett verschiedene Lizenzen haben.
Hallo Rainer,

mein Statement war ausschließlich auf qt bezogen und nicht auf pvbrowser. Du hattest ja Reklame für qt gemacht ;-). Und da musste ich einfach antworten.
 
Zurück
Oben