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.
µ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).
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
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.
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.
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
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.
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
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.
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.
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.......
Fred R. schrieb:> Otto schrieb:>> Die Programmiersprache hieß "S5" und aktuell "S7"> Nein. TIA Portal ist aktuell.
Unglaublich, wie die Zeit vergeht...
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.
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.
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?!?
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
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.