Forum: Mikrocontroller und Digitale Elektronik SPS und Mikrocontroller


von Matrix (Gast)


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.



: Gesperrt durch Moderator
von Lupin (Gast)


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

von Otto (Gast)


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




von Elektrikser (Gast)


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.

von Günter R. (galileo14)


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.

von Zapp (Gast)


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

von Basstler (Gast)


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.

von Thomas H. (supergrobi)


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

von johnny.m (Gast)


Lesenswert?

Das Thema hatten wir schon:
Beitrag "Was ist SPS?"

von Matrix (Gast)


Lesenswert?

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

von Sonic (Gast)


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.

von TCS998 (Gast)


Lesenswert?

Ja Leute die SPS kann wieder eingelesen und bei Erweiterungen leicht 
abgeändert. Ein µC kann nur erweitert werden wenn man den Code hat!!!
Zb: Kunde will Gargentor und erweitert nach 2Jahren das System mit 
Smarthomefunktion. Es sind zwei verschiedene Firmen am Werk.

SPS: Einlesen, abändern:Fertig (Außer Copyright/Passwort geschützt: Pech 
neu machen)

µC:  Garegentor mit Smarthomefunktion neu Programmieren. Pech!

Das ist der Unterschied Interrupt, Intereter usw. Ist wurscht ist mir 
doch egal ob die Garage nicht 0,004 mS dauerert anstatt 10mS. Es gibt 
für nahe zu Echtzeit anlagen dem entsprechend teuere SPS'e. Da ist halt 
eine Produktionsanlage anstatt der Tor.

Man verwendet den Siemens Logo, wie ihr Aduino anstatt Atmel 
verwendet... ist halt da, billig, also zum lernen super.

von Cihan S. (cihan_s)


Lesenswert?

Schwachsinn.

von Uwe C. (Firma: privat) (olmuk)


Lesenswert?

Warum muss immer eine Fraktion recht haben und hat das alleinige Recht 
auf den "wahren Jacob" ??
Genauso die mitleidigen Kommentare über gute und schlechte 
Programmierer.

Da ich in beiden Welten lebe, hauptsächlich SPS glaube ich steht fest 
das alles seine Berechtigung hat.

Die Industrie kann den AVR so nicht gebrauchen, alleine schon durch 3,3 
/ 5V.
Dort ist alles auf 24VDC ausgelegt.

Weiterhin glaube ich das eine Automatisierungslösung mit einbem AVR 
nicht mehr überschaubar ist.

Und was ist mit Debugging, Motorregelungen ( fliegende Säge, 
Nockenwellen ) ?

Das schaue ich mir mal von den hochnäsigen MC- Leuten an und lach micht 
tot.

Lasst doch jeden in Seiner Anwendung selig werden, Äpfel und Birnen 
schmecken alleine und ergeben somnst den Multivitaminsaft.......

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Otto schrieb:
> Die Programmiersprache hieß "S5" und aktuell "S7"

Nein. TIA Portal ist aktuell.

von Zeitreisender (Gast)


Lesenswert?

Fred R. schrieb:
> Otto schrieb:
>> Die Programmiersprache hieß "S5" und aktuell "S7"
> Nein. TIA Portal ist aktuell.

Unglaublich, wie die Zeit vergeht...

von milli Siemens (Gast)


Lesenswert?

TCS998 schrieb:
> Ist wurscht ist mir
> doch egal ob die Garage nicht 0,004 mS dauerert anstatt 10mS.

Stimmt. Der Leitwert deiner Garage interessiert nicht die Bohne.

von Hurra (Gast)


Lesenswert?

Thomas H. schrieb:
> 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)."

Dir ist klar, dass heute bei SPSen auch Hochsprachen üblich sind? So zum 
Beispiel auch C.
AWL, Kontaktplan und FUP kann man zwar machen, aber das ist nicht mehr 
so üblich. Die Projekte sind hierfür heute meistens viel zu komplex.
Ich habe eine Zeitlang bei einem Hersteller von SPSen gearbeitet, Die 
Applikationisten dort haben sehr viel in C gemacht.

Was der Unterschied tatsächlich ist, wurde oben schon genannt. Die SPS 
ist ein Gerät, da kann ein Microcontroller drin werkeln (eher ein 
richtiger Prozessor).
Die SPS hat fertige Ein- und Ausgänge und industrieübliche Feldbusse.

Ein Microcontroller hat nur GPIOs. Das ist NICTH das gleiche.
So ein SPS-Eingang hat ein genormtes Verhalten (Schaltpegel, Strom, 
Spannung etc), so dass das mit Geräten verschiedener Hersteller ohne 
zusätzliche Elektronik zusammenschalten kann.

von kjghkfysd (Gast)


Lesenswert?

Cihan S. schrieb:
> Schwachsinn.

Solch gut begruendete Aeusserungen sind immer wieder koestlich.

kjghkfysd

von FredsFellow (Gast)


Lesenswert?

kjghkfysd schrieb:
> Cihan S. schrieb:
>> Schwachsinn.
> Solch gut begruendete Aeusserungen sind immer wieder koestlich.

Aber selten so treffend.
Und dafür wurde ein Fred nach 10 Jahren exhumiert?!?

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Man sollte doch mal endlich eine Sperre einbauen, dass man auf 5 Jahre 
alte Threads nicht mehr antworten kann.

von Michael_ohl (Gast)


Lesenswert?

Ist doch Lustig wie sich die SPS vom 8051 inzwischen bis zum Dual 10Core 
Prozessor weiterentwickelt hat. Und das Leute die SPS können auch mal 
über 300€ die Stunde kosten.


mfg
Michael

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Markus M. schrieb:
> Man sollte doch mal endlich eine Sperre einbauen, dass man auf 5 Jahre
> alte Threads nicht mehr antworten kann.

Ist ja an sich auch da (in Form einer großen roten Warnung), aber
nachdem 5 weitere Leute diese Warnung ignorieren, ist der Thread
natürlich dann plötzlich doch „aktuell“.

Jedenfalls kann er getrost wieder in die Kiste.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.