www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPS und Mikrocontroller


Autor: Matrix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

mich würd mal interessieren was der Unterschied zwischen einer 
Speicherprogrammierbaren Steuerung und einem Mikrocontroller ist.

Eine SPS ist doch ein Gerät mit Eingängen und Ausgängen womit man z.B 
Antriebe regeln/steuern kann und man sich das Programm dann abhängig von 
der Anwendung erstellen bzw. modifizieren kann.

Ein Mikrocontroller hat aber doch auch Eingänge und Ausgänge und kann 
für Steuerungen bzw. Regelungen verwendet werden.

Aber wo ist das jetzt der Unterschied?
Und was ist nun anspruchsvoller, eine SPS oder einen µC proggen???
Vielleicht kann ja auch jemand ein SPS-Programm zeigen..würd mich mal 
interessieren wie diese Programme aufgebaut sind.



Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
µC programmieren ist definitiv anspruchsvoller. In jeder SPS steckt wohl 
auch ein µC der das Programm abarbeitet, den seine Ausgänge steuern dann 
relais an.

Ich find SPS'en gehören eher in den Bereich Leistungselektronik, 
Installationstechnik, Automatisierungstechnik. µC Systeme sind eher im 
Bereich Kleinstleistungselektronik, portable Systeme und Systeme des 
Alltäglichen Gebrauchs zu finden.

SPS ist nicht so mein ding... meiner Meinung nach ist das nur für Leute 
die nicht programmieren können. Die Programmierung erfolgt entweder mit 
blockschaltbildern oder als Klartext (hab ich noch nicht so oft 
gesehen).

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Matrix,

grundlegender Unterschied ist, daß eine SPS ein betriebsfertiges
Gerät ist, dem nur noch das Programm fehlt.

Es gibt diverse Hersteller und die unterschiedlichsten Baugruppen.

Es fängt bei digitalen E/A von 12 VDC bis 230 VAC  an, geht über 
Analogverarbeitung, Meßsystem- und Zählerbaugruppen und endet bei 
Bussystemen wie z. B. "Profibus" oder MPI.

Ursprünglich wurden SPS in Anweisungsliste (AWL) programmiert,
später kam grafische Programmerstellung in Kontaktplan (KOP)
oder Funktionsplan (FUP) hinzu.

Moderne SPS bieten die Möglichkeit, auch in C oder C-ähnlichen
Dialekten zu programmieren.

Beispiel eine "UND - Verknüpfung" zweier Eingänge:

AWL:

U E 0.0
U E 0.1
= A 1.0

KOP:

    E0.0   E0.1   A1.0
+---[ ]----[ ]----( )---

FUP:

E0.0 -+----+
      I    I
      I    +--- A1.0
E0.1 -+----+

Die grafischen Elemente können bei z. B. Siemens mittels
einer grafischen Programmieroberfläche erstellt werden.

Die Programmiersprache hieß "S5" und aktuell "S7"

Gruss Otto




Autor: Elektrikser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die SPS wiederholt selbständig ihr Programm. Sie liest zuerst das Abbild 
der Eingänge ein, arbeitet dann das Programm ab und danach schreibt es 
das Abbild der Ausgänge. Das bedeutet, dass der SPS die Eingänge während 
des Zyklusses nicht interessieren und dass die Ausgänge erst nach der 
Programmabarbeitung aktualisiert werden!
Das ist der Haupt unterschied zu einer µC.
Anspruchsvoll ist beides. Eine SPS kann sehr viel und ist durch die 
Prozessverarbeitung teilweise schwieriger zu programmieren. Einer der 
wichtigsten Punkte ist, das man Ausgänge nur einmal im Programm 
setzt/schaltet, da der letzte Zugriff auf den Ausgang zählt. Man kann 
einen Ausgang 50mal schalten und die SPS nimmt die letzte Verknüpfung. 
Biem µC kann man da walten, wie man will.

Autor: Günter R. (galileo14)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine SPS ist ein uC-System mit einem eingebauten Betriebssystem; das ist 
das Steuerprogramm der SPS. Das ganze kann man sich wie einen 
Basic-Interpreter vorstellen; das Anwenderprogramm besteht aus Einträgen 
in einer Befehlstabelle, die, wie Elektrikser richtig geschrieben hat, 
zyklisch abgearbeitet wird, mit z.B. 100 Zyklen/Sekunde. Ähnlich wie bei 
Basic gibt's dort Befehle zum Verknüpfen von Eingängen und Schalten von 
Ausgängen, für Timer-Anwendungen, Monoflops usw. Aber alles wird wie 
gesagt vom eingebauten Betriebssystem interpretativ ausgeführt und ist 
somit relativ langsam, und immer läuft dort eine Schleife, die die 
ganzen Abläufe ständig wiederholt. Erstellt wird so ein Programm i.d.R. 
auf einem PC mit einem Projektierungsprogramm wie z.B. S5/S7. Dieses 
"compiliert" die Ablaufpläne und erstellt daraus die o.g. 
Befehlstabelle, die dann im Flash der SPS gespeichert wird, über das 
Datenkabel.

Autor: Zapp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die SPS hat eine relativ tiefe Verarbeitungsgeschwindigkeit. Dh ein 4MHz 
Atmel AVR laesst eine Siemens Logo 1ocker 100 Mal im Regen stehen. Ich 
kann mir's leider gar nicht erklaeren weshalb eine Logo bei ein paar 
logischen Verknuepfungen auf 1ms Zykluszeit kommt, wo das auf einem AVR 
erst 4us gedauert hatte.

Z

Autor: Basstler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Logo ist definitiv KEINE SPS, mehr ein "intelligentes" Relais.

Die aktuelle Norm der Programmierung in Anweisungslisten ist die 
IEC1131-3.
Von der sich allerdings Siemens distanziert.

Bei grösseren Industrieanlagen kommen schnell über 1000 Ein- bzw. 
Ausgänge zusammen. Zusätzlich die diversen Busverbindungen, 
Datenbankanbindung für Produktionsdaten, etc.
Die Schwierigkeit der Programmierung liegt in der asynchronen 
Abarbeitung des Programms. Es muss immer bedacht werden, dass die 
Änderungen erst am Ende des Programms auf die Ports geschrieben werden. 
Daher braucht man mindestens eine volle Zykluszeit, bis man auf ein 
Ereignis reagieren kann.
Ändert sich z.B. ein Eingang mittem in der Zykluszeit, wird dieser erst 
am Anfang des nächsten Zyklus erkannt.
Für zeitkritische Anwendugen gibt es aber auch Interrupt gesteuerte 
Baugruppen, die dementsprechen früher reagieren.

Bsp. einer komplexen Steuerung :
Containerterminal Altenwerder, der ist zu 90% automatisiert.

Einen pauschalen Vergleich was schwieriger ist, lässt sich nicht sagen.
Beide, µC- und SPS-Programme können äusserst komplex werden.

Autor: Thomas H. (supergrobi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zum Thema "SPS ist nicht so mein ding... meiner Meinung nach ist das nur 
für Leute die nicht programmieren können. Die Programmierung erfolgt 
entweder mit
Blockschaltbildern oder als Klartext (hab ich noch nicht so oft 
gesehen)."

hier mal ein Auszug aus einem SPS Programm:

      L     #ZCode
      L     99
      >I                                //Zielcode auf Teil > max.?
      R     #ok                         //ungültig setzen!
      BEB                               //ja --> Ende

      L     #ZCode                      //Zielcode auf Teil holen
      SLW   4                           //Umwandlung in Pointer und Adr 
* 2
      LAR1

      AUF   #DB_Routing                 //Routingtabelle öffnen
      L     DBW [AR1,P#0.0]             //Neuen Zielcode für Teil holen
      T     #Routing_OUT                //Neuen Zielcode ausgeben
      L     0
      <>I                               //Neues Ziel <> 0?
      =     #ok                         // ja, gültig!
      BE

oder hier ein Auszug aus einem anderen Programm:

    Alarm_Plausi := false;
    IF Messwert_Int < Zwischenspeicher_Min - (Skalierung_Max 
*Vorgabe_Prozent / 100) THEN
        IF Freigabe_Fehlermeldung THEN
            Alarm_Plausi := true;
        END_IF;
        Zwischenspeicher_Min := Messwert_Int;
    END_IF;

    IF Messwert_Int > Zwischenspeicher_Max + (Skalierung_max * 
Vorgabe_Prozent / 100) THEN
        IF Freigabe_Fehlermeldung THEN
            Alarm_Plausi := true;
        END_IF;
        Zwischenspeicher_Max := Messwert_Int;
    END_IF;

sind wohlgemerkt beides S7 Programme !

Ich muss aber ehrlich zugeben, das ich selbst auch lieber µC 
programmiere. Dabei muss man nicht solche Verrenkungen vollführen :)

SPS ist sch*ss langsam im Vergleich zum µC.

Gruß
Thomas

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Thema hatten wir schon:
Beitrag "Was ist SPS?"

Autor: Matrix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für eure informativen Beiträge!
Nun ist mir einiges klarer geworden..

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nu sowas! In der SPS (der CPU) ist doch ein µC! In den alten S5 - Teilen 
meines Wissens ein 8052 oder 8031, sowas in der Art. Das Ganze soll 
modular aufgebaut sein, beliebig erweiterbar und in einer einheitlichen 
Programmiersprache zu bedienen. Dass es langsam ist hat eben der 
Interpreter (das Betriebssystem) der SPS zu verantworten. Diese 
Betriebssystem müsstest du programmieren, wenn du einen µC für einen 
solchen Einsatz verwenden wolltest.
Dass sich das System bewährt hat, hat der millionenfache, weltweite 
Einsatz der S5 gezeigt.

Wenn du allerdings einen festen, kleinen Anwendungsbereich hast, der 
nicht von wechselndem Instandhaltungspersonal betreut wird, kannst du 
auch einen µC mit etwas Peripherie benutzen, ist im Endeffekt eine 
Preisfrage, da die SPSen nicht soo billig sind.

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.