Prozessvisualisierung über TCP/IP Schnittstelle

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
ein Schweizer

Hallo erstmal

Ich habe da einige Frangen an Euch im bezug auf Python. Doch zuerst kurz etwas zu meiner Person. Ich besuche zurzeit Berufsbegleitend eine Informatik-Technikerschule. In gut drei Monaten muss ich eine Diplomarbeit schreiben. Ich komme Beruflich aus der Prozessautomation (Chemie). Nun möchte ich als Diplomarbeit eine kleine Chemische Anlage, die mit einer Siemens SPS (Speicherprogrammierbare Steuerung) gesteuert wird, Programmieren. Für die Visualisierung der Anlage möchte ich kein Siemes Tool verwenden, sondern etwas eigenes Programmieren. Die Steuerung möchte ich via Ethernet (TCP/IP Protokoll) mit einem handelsüblichen PC verbinden. Auf dem PC ist "leider" ein Windows Betriebssystem installiert! Mit diesem dem PC soll die ganze Anlage gesteuert und überwacht.
In der Schule lernen wir C++ Programmieren (zurzeit nur auf der Konsole!). Evt. werden wir noch eine GUI mit QT Programmieren. Da QT auf Windows Lizenzpflichtig kommt dies für meine Visualisierung nicht in Frage.
Soviel ich nun mitbeckommen habe ist Python mit den div. GUI Tools gratis und soll sogar Platformunabhängig sein (hoffe ich doch,
da ich Privat auf dem Mac (OSX) programmiere).
:oops:
Die Ethernetschnittstelle vom PC zur SPS macht mir noch am meisten Angst. Ich glaube zwar das Siemens eine Schnittstelle mit irgendwelche
C++ Files anbietet. Doch kann ich überhaupt C oder C++ header Dateien in Python einbinden??????

Ist es denkbar in nur zwei Wochen eine Visualisierung mit Python zu programmieren?
Ist Python tatsächlich so viel einfacher wie C oder C++?

Wäre froh um Eure Antworten ;-}

Gruss aus der Schweiz
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Hallo!

Nur so ein paar Gedanken:

Wenn Du bisher nur Programmiererfahrungen auf der Konsole hast, ist es natürlich ein gewisses Wagnis, sich jetzt festzulegen, in drei Monaten produktiv(!) GUI-Programmierung betreiben zu wollen. Vorausgesetzt die TCPIP-Schnittstelle zur Anlage ist auch mit Python direkt ansteuerbar (im simpelsten Fall z.B. über Telnet), wäre Python (mit z.B. Tkinter als GUI) sicherlich unter den zeitl. Rahmenbedingungen eine gute Wahl. Wenn der Zugriff zwingend nur über C/C++ möglich ist und Du also Python um Module erweitern musst, die in C/C++ geschrieben sind (geht wohl recht einfach, aber habe es selbst noch nie gemacht), wird es natürlich zeitaufwändiger.

Überwachen und Steuern mit handelsüberlichen Windows-PC? Gibt es keine Anforderungen an Echtzeit und Ausfallsicherheit?
Ist es denkbar in nur zwei Wochen eine Visualisierung mit Python zu programmieren?
Ist Python tatsächlich so viel einfacher wie C oder C++?
Zur 1. Frage: Nur die Visualisierung? Das sollte kein Problem sein. Wenn die Kommunikation via TCPIP auf Konsolenebene ausgetestet ist und der prinzipelle Aufbau der GUI klar ist, und den gibt die Anlage ja sicherlich weitestgehend vor.
Zur 2. Frage: Ja, aber eine Programmiersprache ist es trotzdem. Wer also bein Erlernen von C++ massive Probleme hat, wird mit Python nicht unbedingt weniger haben. Schneller erlernbar, um Vergleichbares programmieren zu wollen, ist Python sicherlich.

Just my 2 cents
Jan
piddon
Gründer
Beiträge: 410
Registriert: Dienstag 30. Juli 2002, 18:03
Wohnort: Oestrich-Winkel
Kontaktdaten:

Zur 2. Frage: Ja, aber eine Programmiersprache ist es trotzdem. Wer also bein Erlernen von C++ massive Probleme hat, wird mit Python nicht unbedingt weniger haben. Schneller erlernbar, um Vergleichbares programmieren zu wollen, ist Python sicherlich.
Bin ich anderer Meinung. Mit c/c++ hat man meist wegen der unübersichtlichen pointer und des Syntaxes probleme (geht mir auch so). Das jedoch ist bei Python nicht so wild. Man muss sich über vieles keine Gedanken machen, da es benutzt werden kann und nicht neugeschrieben werden muss.

Python ist in der Beziehung sehr gut, weil der Syntax wirklich einfacher ist, und eher "umgangssprachlich" ist.

Aber ob trotzdem solch ein Projekt in 2 Wochen zu realisieren ist, kann man schwer sagen, denn es kommt auf deinen Kenntnissstand an.
Wenn du die grundzüge der Programmierung kannst/beherrschst, ist es nicht allzuschwer sich in eine neue Programmiersprach einzuarbeiten. Es sei denn du kennst dich nicht mit Objectoriantierung aus, denn das benötigst du bei Python. Im Prinzip ist es möglich.
irc: #python.de @ irc.freenode.net | [url=http://pythonwiki.pocoo.org]python-wiki[/url] | [url=http://www.pythonwiki.de/PythonDeForum/Faq]python-forum FAQ[/url]
hans
User
Beiträge: 728
Registriert: Sonntag 22. September 2002, 08:32
Wohnort: Sauerland
Kontaktdaten:

Also QT für Windows ist nicht unbedingt Lizenzpflichtig. Siehe dazu mal http://www.trolltech.com/download/qt/noncomm.html

Ich habe mir die Lizenzbedingungen nicht genau durchgelesen. Vielleicht reicht es ja für deine Belange.

Also für eine Projektarbeit von zwei Wochen gehen mindesten ein, wenn nicht zwei Tage für die GUI drauf. (Ist meine Schätzung, ich bin aber auch dafür bekannt, schlecht zu schätzen und zu untertreiben :sad: ) Ich kenne QT und Python allerdings nur unter Linux.

Hans
ein Schweizer

Wow ging das aber schnell! Danke an Voges, Piddon und Hans für Eure Antworten :-)
--------------------------------------------------------------------------
An Voges:
Überwachen und Steuern mit handelsüberlichen Windows-PC? Gibt es keine Anforderungen an Echtzeit und Ausfallsicherheit?

Jein. Das gute ist ja das die Steuerung völlig unabhängig von der Visuallisierung läuft (also autonom). Wenn nun eine Störung auftritt (zB ein Schnell Stop oder Not Aus ausgelöst wird) wirkt diese direkt auf die Steuerung und nur indirekt auf die Visualisierung. Klar, es soll ja so schnell wie möglich eine Störung angezeigt werden. Und zum Glück ist dies nur eine kleine Testanlage, wo die Lehrlinge daran üben und spielen können.
-------------------------------------------------------------------------
An Piddon:
Ja, ich kenne mich einwenig mit der Objektorientierung aus. Das mit den Pointern und Referenzen geht bei mir von mal zu mal besser. Zurzeit lernen wir gerade etwas über die Vererbung, Polyphormismus (Mehrfachvererbung), Templates und Streams (in und out in Files).
-------------------------------------------------------------------------
An Hans:
Danke für Dein Link. Wie ich kurz gelesen habe braucht man dazu die Software Microsoft Visual Studio. Ich glaube das diese Software auch nicht gerade günstig ist. Vieleicht kann ich ja die Herren IT in der Bude, in der ich arbeite überzeugen, dass ich mir eine eigene Linux Partition anlegen kann.
-------------------------------------------------------------------------

Hier schon wieder ein paar Fragen:
Ich habe gesehen das es bei Python auch Klassen gibt (Objekte). Kennt Python die sogenannte Datenkapselung? In C++ wäre das: public, private und protected (friend Klassen).

PS.
Ich habe von der FA Siemens ein paar Informationen beckommen bezüglich der Schnittstelle.
Hier ein kurzer Auszug davon:

Programmierschnittstelle über C-Library
Die Programmierschnittstellen für die Protokolle S7-Kommunikation, PG/OP-Kommunikation, S5-kompatible Kommunikation für bestehende Anwendungen sind als Dynamic Link Library (DLL) realisiert.

Daher können folgende Compiler in Zusammenhang mit den SIMATIC NET Produkten eingesetzt werden:

* Microsoft Visual C/C++ V6.0
* Microsoft Visual Basic V6.0

Der Einsatz anderer Compiler kann über den OPC-Server realisiert werden, jedoch muss der Compiler die COM-Schnittstelle (Microsoft-Komponenten-Modell) unterstützen

(OPC steht für OLE for Prozess Automation)

Nächste Frage:
Meinen die mit COM die Serielle RS 232 Schnittstelle??? Diese benötige ich ja gar nicht wenn ich via TCP/IP Komunizieren will. Naja, vieleicht meinen die auch was ganz anderes damit. Auf jeden fall kenn ich das sonst noch nicht.
Wenn doch die RS 232 Schnittstelle damit gemeint ist:
Unterstützt Python die COM-Schnittstelle (Microsoft-Komponenten-Modell) ?

Sorry das ich Euch mit solchen Fragen bombardiere!

Ich werde auf jeden Fall Python einwenig im Auge behalten. Gestern Abend habe ich ausgerechnet das mir bis zur Prüfung noch 15 Wochen bleiben.

Danke nochmals an Euch alle.

PPS. Gehe nun eine Woche in die Berge. Werde deshalb eine Woche lang das Forum nicht besuchen können.

Viele Grüsse, der Schweizer
Antworten