mikrocontroller.net

Forum: Compiler & IDEs Hilfe zu Programmierung


Autor: Yannick Frank (yl108)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe das Problem, dass ich in kürze mein Abschlussprojekt bearbeiten 
muss. In dem Projekt kommt die Automatisierung eines Ablaufes vor, 
welchen ich als Mechatroniker normalerweise mit einer einfachen SPS 
realisieren würde. Jetzt darf ich aber aus Mobilitäts- und Platzgründen 
keine S7 einbauen, sondern soll die Steuerung anhand eines 
Microcontrollers realisieren.

Nur ich hab 0 Ahnung von der Programmierung in C bzw vom Anschluss eines 
solchen Microcontrollers.



Weiss jemand ob es die Möglichkeit gibt, eine AWL Programmierung aus S7 
einfach in C zu übersetzen? Oder gibt es vielleicht jemanden der mir 
geren dabei helfen würde?



Ich habe auch schon versucht mir C beizubringen aber habe gleich 
gemerkt, dass die Zeit zu knapp ist um ein vernünftiges Ergebniss zu 
erzielen. Mit etwas Hilfe von euch werd ich es aber bestimmt packen.

Wer interesiert ist, mir etwas zu helfen oder sonstige Tipps für mich 
hat, bitte bitte melden!



LG

Autor: Muecke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist Du ganz sicher das Du die Aufgabenstellung richtig verstanden hast?
Ist es heute üblich Auszubildende so vor vollendete Tatsachen zu 
stellen?

Als ich damals Energieelektronikler/Anlagentechnik lernte (gibts ja auch 
schon nicht mehr), da war an C überhaupt nicht zu denken (zumindest 
nicht bei Prüfungen).

Gruss Mücke


p.s.: Meines Erachtens ist Mikrocontrollerprogrammierung auch nicht 
Aufgabe eines Mechatronikers oder?

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> In dem Projekt kommt die Automatisierung eines Ablaufes vor...

Kannst du das ein wenig ausführlicher beschreiben ?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde Dir in dieser Situation Basic anstelle von C empfehlen. Der 
Einstieg ist viel einfacher, vielleicht hast Du sogar schon gewisse 
Basic-Vorkenntnisse?

Zum Beispiel BASCOM für Atmel AVR Controller:

http://de.wikipedia.org/wiki/BASCOM

Möglicherweise lässt sich Deine Aufgabe schon mit der kostenlosen 
Demo-Version lösen!

Viel Glück

Autor: peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du mechatroniker lenst, wirst du in der prüfung mit sicherheit 
nichts mit microkontrollern zu tun haben, das hat rein garnichts mit dem 
mechatroniker zu tun.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yannick Frank schrieb:

> Ich habe auch schon versucht mir C beizubringen aber habe gleich
> gemerkt, dass die Zeit zu knapp ist um ein vernünftiges Ergebniss zu
> erzielen.

Habe mich jetzt ein bischen über AWL schlau gemacht.
Das sieht eigentlich ziemlich simpel aus:
  Es gibt einen Akku
  Operationen arbeiten auf diesem Akku
  komplexere Strukturierungsmöglichkeiten gibt es keine

Sobald du die Hürde gemeistert hast, den I/O Teil deines Prozessors 
anzusprechen, sollte das Umsetzen eines AWL Programms in C eigentlich 
nicht sooo schwer sein, wenn du exakt weißt was welcher Befehl genau 
macht.
Wobei sich natürlich die Frage stellt, ob man in C eine AWL 'emulieren' 
soll, oder ob man das gleich vernünftig macht.
    LD  INPUT1
    AND INPUT2
    ST  OUTPUT1

kann man in C natürlich so schreiben
int main()
{
  uint8_t Akku;

  ...
  // Ports korrekt auf Ein / Ausgabe konfigurieren
  ...

  while( 1 ) {
    Akku = INPUT1;
    Akku = Akku & INPUT2;
    OUTPUT1 = Akku;
  }
}

(mit geeigneten Makros für INPUT1, INPUT2 und OUTPUT)
man würde as aber in C kanonischer schreiben als ...
int main()
{
  ...
  // Ports korrekt auf Ein / Ausgabe konfigurieren
  ...

  while( 1 ) {
    OUTPUT1 = INPUT1 & INPUT2;
  }
}

... und den Akku komplett links liegen lassen, denn man kann ja 
schliesslich arithemtisch/logische Ausdrücke so schreiben, das links vom 
= eine 'Variable' steht, welche das Ergebnis aufnimmt und rechts vom = 
ein beliegib aufgebauter arithmetischer Ausdruck, der nicht von ungefähr 
an die Formelschreibweise der Mathematiker erinnert.

    i = 8 * 5 + 7;

ist nun einmal leichter zu lesen (und auch zu schreiben) als ...

     LD    8
     LD    5
     *R
     LD    7
     +R
     ST    i

(keine Ahnung ob dieses AWL in der Syntax korrekt ist)
... wo man sich auch noch um die richtige Auswertereihenfolge (Punkt vor 
Strich Rechnung) selber kümmern muss.

Klar wird es da noch ein paar AWL Spezialitäten geben, die sich nicht so 
trivial umsetzen lassen aber das hängt dann natürlich auch von der zu 
lösenden Aufgabe ab

Autor: Frank Jonischkies (frajo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und hier hat Josef mal eine SPS auf AVR vorgestellt:
Beitrag "SPS Betriebssytem"

Autor: Yannick F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erst einmal für die zahlreichen und schnellen Antworten!

Die Mikrocontrollerprogrammierung hat nichts mit dem Ausbildungsinhalt 
eines Mechatronikers zu tun.
Es handelt sich um die Umsetzung eines betrieblichen Auftrages und meine 
Prüfung wird ein Teil dieses Gesamtauftrages, wobei ich natürlich den 
Mikrocontroller nicht beachte.
Es wurde im Auftrag die Herausforderung gestellt den Ablauf über eine 
"kompakte Elektronik" zu realisieren und so bin ich auf den 
Mikrocontroller gekommen.

Zur Beschreibung des Programmes an sich:

3 Spannungen sollen miteinander verglichen werden, je nachdem welche am 
größten ist, fährt ein Schlitten eine von 3 Positionen an und verweilt 
dort, bis eine andere Position ermittelt wurde.
Der Vergleich findet alle 30min statt. Zusätzlich sollen über den 
Mikrocontroller noch weitere Ausgabefunktionene, wie zum Beispiel das 
Anzeigen eines analogen Spannungswertes auf einem LCD-Display statt 
finden.

Ich werde mal versuchen mich in BASCOM einzuarbeiten und die weiteren 
Tipps zu befolgen!

Danke!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yannick F. schrieb:

> Zur Beschreibung des Programmes an sich:
>
> 3 Spannungen sollen miteinander verglichen werden, je nachdem welche am
> größten ist, fährt ein Schlitten eine von 3 Positionen an und verweilt
> dort, bis eine andere Position ermittelt wurde.
> Der Vergleich findet alle 30min statt. Zusätzlich sollen über den
> Mikrocontroller noch weitere Ausgabefunktionene, wie zum Beispiel das
> Anzeigen eines analogen Spannungswertes auf einem LCD-Display statt
> finden.

Na ja, das ist ja nicht gerade Raketentechnik.
Das schwierigste dürfte sein, die 30 Minuten einigermassen genau 
hinzukriegen :-)

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst auch mal unter

http://www.microsps.com/

nachschauen, ob das was für dich wäre.

cu, Tom

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.