Hallo zusammen, ich hab da mal eine Frage: Es gibt ja viele solche Bausteinorientierte Programmier oder Entwicklungssoftware oder Simulationssoftware, wie WinFact oder Matlab Simulink oder Porgrammier-Software von diversen SPSn wie S7. Mich würde nun interessieren wie so eine Software grundsätzlich aufgebaut ist bzw wird. Gibt es da irgendwo einfache Beispiele dazu (zB mit ein paar Bausteinen). Mir ist schon klar das eine Software wie Simulink nicht einfach zum machen ist mich würde nur das prinzip interessieren. Benötige sowas für einen Mikrocontroller, also Programmierung grafisch anschl. soll das Programm im hintergrund nach C übersetzt werden und mit einem compiler für den jeweiligen Mikrocontroller in ein HEX File komipiliert werden. Vielen Dank, Peter
Mit Scilab gibt es ja einen Open Source "Klon" von Matlab (Simulink). Eventuell haben die ja in Zusatzdokumenten zum Quellcode auch erläutert, wie sie dort herangegangen sind. Zu meinen Unizeiten gab es auch Bestrebungen sowas aufzuziehen. Im Ergebnis kann man sagen, dass selbst bei sehr beschränkter Anzahl der Blöcke mehr als ein Mann notwendig ist, um so ein Framework zu stemmen. -> GUI muss gemacht werden -> Codegenerierung aus GUI Blöcken ist zu machen -> Cross-Compile Plattform muss aufgesetzt werden -> Run-time Environment (Programmrahmen) für die Zielhardware inkl. Devicetreiber muss umgesetzt werden -> Host interface (Visualisierung der Echtzeitvariablen) darf natürlich auch nicht fehlen Da ist mit allein mit der Planung (wenn was drauß werden soll) schon ein gutes halbes Jahr beschäftigt. Alternativ wird erstmal los gebastelt und nach nem 3/4 Jahr hast du ein "Produkt" das nicht richtig tut und auch von niemandem weiterentwickelt werden kann, weils einfach ein Codegrab ist. Aber schreib ruhig mal, um was es genau geht :-)
Erstmal Danke Alex für deine Antwort Vor einiger Zeit hat mich ein Heizungstechniker gebeten eine Heizungsregelung für ihn zu bauen die er öfter einsetzen und quasi frei programmieren kann. Also Mikrocontroller + Hardware + C-Code ist ja kein problem für mich sage ich jetzt mal so. Aber für den Heizungstechniker wirds da schon etwas schwieriger. Für ihn wäre nämlich eine Windows-Software mit einigen Regel und Logikbausteinen das richtige. Jetzt wär mein erster Gedanke, dass eine grafische Programmieroberfläche sein Programm zuerst nach C umsetzt und ich dann mit dem zugehörigen Compiler für den jew. Controller dass C-Programm im Hintergrund in ein HEX File kompiliere. Wie der C-Code für die einzelnen Bausteine Logik oder Regler usw. aussehen sollte ist mir klar. Ich hoffe ich habes klar genug erklärt. Danke Peter
Hallo Ja genau in diese Richtung soll es in etwa gehen. Soll aber nicht so mächtig sein. Aber diese Software ist ja nicht Open Source oder doch???
Also wenn ich so etwas entwickeln müsste würde ich da nicht im Hintergrund umkompilieren, etc. Ich würde einen Parser in c für den µC schreiben der entsprechenden Steuercode entsprechend umsetzt. Dazu dann ein Drag&Drop Programm was entsprechende Daten erzeugt. Als Format für diese Daten würde ich vermutlich etwas in Richtung XML nehmen, das bietet sehr gute Strukturierungmöglichkeiten und bleibt dabei noch lesbar. Hier ein Beispiel der Daten wie ich sie mir vorstellen könnte:
1 | <outputs> |
2 | <output id="0" name="Motor" pin="1" init="0" /> |
3 | <output id="1" name="LED_ON" pin="2" init="0" /> |
4 | <outputs> |
5 | |
6 | <inputs> |
7 | <output id="0" name="On" pin="5" /> |
8 | <output id="1" name="Off" pin="6" /> |
9 | <inputs> |
10 | |
11 | <blocks> |
12 | <block id="0" comment="Motor starten"> |
13 | <and id="0"> |
14 | <inputs> |
15 | <input id="0" not="false"> |
16 | <input id="1" not="true"> |
17 | <input id="2" not="true" comment="Sichergehen das der Motor nicht gestartet werden kann wenn ein Fehler vorliegt"> |
18 | </inputs> |
19 | </and> |
20 | </block> |
21 | |
22 | <block id="1" comment="Motor stoppen"> |
23 | <or id="0"> |
24 | <inputs> |
25 | <input id="1" not="false"> |
26 | <input id="2" not="false"> |
27 | </inputs> |
28 | </or> |
29 | </block> |
30 | |
31 | <block id="2" comment="Motor Relais Ausgang"> |
32 | <and id="1"> |
33 | <inputs> |
34 | <and id="0" not="false"/> |
35 | <or id="0" not="true"/> |
36 | </inputs> |
37 | <outputs> |
38 | <output id="0"> |
39 | <output id="1"> |
40 | </outputs> |
41 | </and> |
42 | </block> |
43 | </blocks> |
Das Format sollte natürlich sehr gut durchdacht sein, und dabei möglichst flexibel bleiben. Je nach anzahl der Blöcke wird das ganze recht schnell ziemmlich RAM intensiv.
Hallo Peter28 Ich mache gerade auch so etwas. Die Hardware ist praktisch schon fertig, es laufen auch schon einige Prototypen. Für die einfach Softwareänderung bräuchte ich auch eine grafische Umsetzung. Im moment habe ich es etwas umständlich über ein Schaltplanprogramm(SPlan von Abacom)gelöst. Das MC-Programm ist in Bascom. Der Aufbau ist folgendermaßen: In Splan habe ich Grafikelemente die die Funktionen darstellen (Thermostate, Thermometer, Verknüpfungen, Parameter, Schaltuhr...) Jede im Programm vorkommende Funktion bekommt eine eindeutige Nummer, welche sich im Programm als RAM-Variable wiederfindet. Aus der Grafik kann ich dann eine Funktionsliste mit den erforderlichen Übergabeparametern erstellen mit der dann der Kompiler das Programm(Hex-File) erstellt. Ich wäre auch an einer Weiterentwicklung meiner Metode, oder an Verbesserungen Interresiert. Meine Vorstellung wäre: 1.Windowsprogramm das eine Funktionsaufrufliste erstellt welche mit einem Compiler(C oder Bascom) übersetzt wird. 2.Bascomfunktionen die den Cod für die Funktionsblöcke erstellen. Wenn du an einer Zusammenarbeit intressiert bist, dann melde Dich bitte nochmal. Gruß Jürgen
Hallo Ist schon Etwas älter, habe aber das Gleiche Problem. Ich suche eine Grafische Programmier-Oberfläche (später auch Bedienoberfläche ) Ähnlich einer Siemens Logo (die alte c-control gibt es nicht mehr, die neuen nur mit Basic und C++) Was ist denn daraus geworden? Vielen Dank
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.