SPS und Mikrocontroller

Gast #513543
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.


Gast #513557
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).
Gast #513560
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



Gast #513567
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.
#513593
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.
Gast #513594
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
Gast #513625
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.
#513643
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
Gast #514325
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.
Gast #4900939
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.
(Firma: privat) #4901078
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.......
Gast #4901502
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.
Moderator Persönliche Seite #4902423
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.