Forum: PC-Programmierung Bausteinorientierte Programmiersoftware


von Peter28 (Gast)


Lesenswert?

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

von Alex (Gast)


Lesenswert?

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 :-)

von Peter28 (Gast)


Lesenswert?

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

von Gast (Gast)


Lesenswert?

Vielleicht etwas in diese Richtung ?

http://mikrocontroller.cco-ev.de/de_sps/einleitung.php

von Peter28 (Gast)


Lesenswert?

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???

von F. K. (freddy436)


Lesenswert?

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.

von Jürgen C (Gast)


Lesenswert?

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

von Andreas W. (1andy1)


Lesenswert?

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
Noch kein Account? Hier anmelden.