PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bau einer Graphischen Programmieroberfläche



Robotniks
13.10.2007, 12:56
Hallo,

ich bin neu hier im Forum und sehe hier sind viele schlaue Köpfe die mir vieleicht weiterhelfen können...

Ich spiele mit dem gedanken für mein Abschlußprojekt eine Graphische Programmieroberfläche für µC zu entwickeln. Welche Controller die Oberfläche später unterstützt seht noch nicht 100% fest. Es soll auf jedenfall ein Basic zwischencode generriert werden z.B wie Bascom.

Jedoch habe ich keine Ansätze im Internet gefunden mit Sourcecode...
Problem ist wie baue ich eine Grafische Oberfläch wo die Bausteine (Digital-Gatter) und Verbindungen wie bei Parsic (www.parsic.de) erzeugt werden?

Vieleicht kann mir jemand weiterhelfen...

Als Programmiersprache würde VB6, VB.NET oder Delphi in Frage kommen.

Grüße Oli

PICture
13.10.2007, 23:18
Hallo Robotniks!

Deine Idee ist änlich zu meiner. Ich habe schon ziemlich lange im Kopf eine Idee ein Programm zu entwickeln, die aus einem Programmablaufdiadramm (PAD) direkt ein Maschinenprogramm für (fast) biliebigen µC generiert.

Ich habe früher in QBasic (einzige Hochsprache die ich kenne) ein Assemblerprogramm geschrieben, der ein ausfürbares Programm generiert hat. Für bestimmten Prozessor musste man ihm nur eine ASCII Datei mit entsprechendem Befehlsatz vorgeben.

Das habe ich ziemlich lange selber benutzt z.B. für 6502, Z80 und 8051. Alles, was er nicht im Befehlsatz gefunden hat, hat er als Marke gennomen. So hat er zwei Durchläufe gebraucht um alle Adressen für Sprunge zu Berechnen.

Aus PAD ein Maschinenprogramm zu generieren finde ich auch möglich, aber schwerer, deswegen habe ich allein noch nicht angefangen. Vor allem ist QBasic unter Windows XP so komplieziert geworden, das ich kein Sinn mehr sehe es zu versuchen, da meine Lieblingssprache ASM ist. :)

MfG

Vitis
14.10.2007, 08:19
Schaut Euch mal die Software zur Siemens Logo an, da wird
einfach das Schaltsymbol (Taster, Timer, Counter etc.) auf die
Benutzeroberfläche gezogen und dann die Anschlüsse zu
Anderen Komponenten gelegt (virtuell). Dann den Programmierstöpsel
in die Logo und Programm aufspielen, fertig.
Ist extremst einfach zu proggen das Ding ... dafür ist halt
aber auch der Funktionsumfang recht klein.

dieta
14.10.2007, 09:04
Du musst das Rad ja auch nicht neu erfinden, du kannst ja z.B. eine schon bestehende IDE wie Eclipse für ASM erweitern und dir dann so einen graphischen Editor proggen.

Robotniks
14.10.2007, 13:15
Hi,

ja die Oberflächen an sich wie Logo Comfort, Parsic, Lego, Robotic-Studio kenn ich ja auch. Jedoch möchte ich selber eine kleine Oberfläche gestallten die das gleiche macht... wie die oben genannten Programme. Die Frage ist nur wie eht das, Bsp. Source würde schon weiterhelfen....

Eclipse ??? ist doch ne Programmiersprache oder?

Grüße Oli

nomad
15.10.2007, 09:31
hi,
zitat:
<<
Eclipse ??? ist doch ne Programmiersprache oder?
>>
Nein, ist eine IDE, urspruenglich fuer Java gemacht, erweiterbar fuer
fast alle Programmiersprachen.
mfg
nomad

Robotniks
15.10.2007, 19:53
Hi,

also java scheidet leider aus...
Hat keiner eine Idee oder einen guten Link?

Grüße Oli

KristofB
22.11.2007, 15:41
Hi,

"Beispielcode" wirst Du zu dem Thema vermutlich kaum finden. Wenn Du aber ohnehin in der .NET-Welt Dein Plätzchen gefunden hast, gibt's eine ganze Menge Möglichkeiten

1. Controls
Du kannst anstatt die Zeichenlogik selbst zu basteln entsprechende Controls verwenden (z.B. FlowChart). Was aus den in den Controls abgebildeten Teilen hinterher erzeugt wird (Dein BasCom-Code) ist da ja erstmal unerheblich. Du hast ein API und kannst daraus ableiten, was Dein Codegenerator zu tun hat.

2. DSL (Domain-Specific-Languages)
Visual Studio 2005 bietet dazu etwas an. Im Prinzip geht das in Richtung Software-Factory - und das ist ja genau das was Du willst.
Du kannst selbst eine visuelle Sprache für Robotik (eben eine domänenspezifische Sprache) entwickeln.
Vorteil : Du hast direkt einen ziemlich leitsungsstarken Editor
Nachteil : Gibt's glaube ich nur in der Team-Edition - und die hast Du ggf. nur, wenn Du auch beruflich damit arbeitest

3. Visio
Mal was ganze anderes : Du könntest - wenn Du Visio hast - ein Template und ein Stencil für Visio entwickeln. Mit den Symbolen aus dem Stencil kannst Du dann Deine Logik basteln und ein Makro im Template übersetzt das Diagramm nach BasComm - dazu reichen VBA, bzw. VB.NET Kenntnisse aus - und ein wenig Visio natürlich.
Die Sache hat vor allem deshalb Charme, weil Du damit für jeden Controller ein Stencil basteln könntest, welches jeweils halbwegs optimierten Code erzeugt. Außerdem könnten auch andere Leute Stencils auf Basis Deiner Vorlage für andere Controller entwickeln - das ist doch nicht schlecht, oder?

4. Selber machen
Du KANNST das alles selbst machen. Ich würde das aber davon abhängig machen, ob Dein Fokus das Programmieren der Software sein soll, oder die Vereinfachung der Programmierung von Controllern. Wenn Du ein Programmier-Freak bist (so würde ich mich bezeichnen), dann wirst Du diese Variante wählen, weil sie einfach Spass macht.
Das ist aber unter zeitlichen Aspekten vermutlich der langwierigste Weg.
Vom Prinzip würde ich da einen ähnlichen Weg beschreiten, wie Visio das macht, also Symbole für die unterschiedlichen Logikbausteine verwenden, die jeweils kleine Codesegmente erzeugen (unter Berücksichtigung des Kontexts).

Wenn ich nicht so viel um die Ohren hätte, würde ich Dir ja gerne helfen. Bei Interesse kannst Du Dich ja mal melden. Aber Du kannst davon ausgehen, dass ich dann ziemlich langsam vorankomme (zumal ich momentan noch nicht mal mein erstes Robo-Kit habe...).
Ich würde dann außerdem C# favorisieren : Ist halt meine Haussprache ;-)

Best Grüße

-Kristof

theborg
22.11.2007, 18:29
Schaut Euch mal die Software zur Siemens Logo an, da wird
einfach das Schaltsymbol (Taster, Timer, Counter etc.) auf die
Benutzeroberfläche gezogen und dann die Anschlüsse zu
Anderen Komponenten gelegt (virtuell). Dann den Programmierstöpsel
in die Logo und Programm aufspielen, fertig.
Ist extremst einfach zu proggen das Ding ... dafür ist halt
aber auch der Funktionsumfang recht klein.

Jo es gibt sogar nen logo/easy compiler für PIC16xxxx

Sääp
21.04.2008, 20:18
hi.

dein geplantes projekt existiert bereits änlich...
und ich kann aus eigener erfahrung sagen es funktioniert sehr gut und total einfach zu programieren.

http://www.microsps.com/

Karenzzeit
18.06.2008, 00:13
Vitis, Offtopic:
Tom Edisons erste Birne ist auch durchgebrannt
Wieviele hat er wirklich gebaut, bis sie funktionierte?

robo.fr
21.06.2008, 18:25
Hallo Zusammen,

habt Ihr euch schon mal LabView angeschaut? Das wird in einer abgespeckten Version auch für die Lego Mindstorms verwendet.
Mittlerweile gibt es auch schon eine Version, die C-Code für ARM-Prozessoren erzeugt.

Gruß,
robo

Robotniks
21.06.2008, 19:21
Hi,

hört sich interessant an.
Hast du mehr zu diesn Thema @robo.fr?

Grüße

robo.fr
22.06.2008, 10:43
http://www.pressebox.de/pressemeldungen/national-instruments-germany-gmbh/boxid-167501.html

ai-service
30.09.2009, 12:56
Hallo,

Beruflich arbeite ich viel mit der Crouzet Millenium 3, ist ein mini-PLC.
Da ist der Siemens LOGO ein ähhhh(egal). Auf jeden fall ist Millenium 3 mit einem ATMAGA128 bestückt. Die Programmiersoftware ist grafisch aufgebaut, alls mit der Maus machbar.
Werde demnächst mal der Software unters Rock schauen.

Auf jedenfall sollte man sich die Oberfäche mal anschauen.

Robotniks
30.09.2009, 15:50
Hallo ai-service,

ja die Crouzet Millenium 3 kenn ich und auch die Oberfläche.
So in etwa habe ich mir das auch vorgestellt :-) Da wäre
der Source recht interessant.

Lass von Dir hören wenn du unter dem Rock wieder vorkommst *g*

Grüße Ulli

Ls4
05.11.2009, 09:56
Hi Robotniks,

favorisieren würde ich für sowas C++ mit QT, das is total easy und bringt einige Funktionalität für sowas mit.
Allerdings fänd ichs mal absolut genial nen ordentliches AVR Plugin für Exclipse zu bekommen. Eclipse arbeitet nicht nur mit Java. Ich schreibe damit z.b. C++. Vorteil sind einfach die Features dieser Umgebung und das einfache Plugin Konzept.

Grafischer Editor is nicht so einfach. Vor allem bei den AVRs kommts ja häufig auf die Reihenfolge an. Man kann sicherlich etwas zusammentricksen, aber richtig konsequent ordentlich programmieren kannst du sowas wohl mit selbstgeschriebenen Parsen. Die Eingabe ist dann relativ beliebig (wenn die syntax stimmt, was bei deiner grafischen Idee ja immer so ist) und der Code wird immer 1:1 aus der Eingabe generiert
Je nachdem was du lernst ist das allerdings schon ein extrem komplexes Thema und für einen Abschlussarbeit (wenn nicht grad Diplomarbeit) viel zu komplex.

Wie gesagt anders gehts auch. Musst du dir aber vermutlich selbst zusammenpfriemeln. Labview etc arbeitet mit Sicherheit mit Parsern. Der Code wird dir hierzu sicher nicht viel bringen ohne die Compilerbau Grundlagen zu kennen.



Viele Grüße,

Tim

pyr0skull
05.11.2009, 10:17
Allerdings fänd ichs mal absolut genial nen ordentliches AVR Plugin für Exclipse zu bekommen.


Was genau ist mit dem jetzigen denn nicht in Ordnung? Ich finde das eigentlich sehr gelungen.

Ls4
06.11.2009, 15:40
Allerdings fänd ichs mal absolut genial nen ordentliches AVR Plugin für Exclipse zu bekommen.


Was genau ist mit dem jetzigen denn nicht in Ordnung? Ich finde das eigentlich sehr gelungen.
gleich mal googeln. mir war nicht bekannt, dass es überhaupt eines gibt!

Viele Grüße,
Tim

Slowly
07.11.2009, 10:31
Moin,
grafische Programmieroberflächen sind schon eine nette Sache.
Ich habe mit Icon-L einige Sachen für einen Beck IPC programmiert.
http://www.pro-sign.de/Products/iconl/amdartikel/amdartikel.html

Die Oberfläche gibt es für die unterschiedlichsten Systeme.
Als Anregung lohnt es sich auf jeden Fall mal rein zu schauen.
Gruß
Slow