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
µ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
Vielen Dank für eure informativen Beiträge! Nun ist mir einiges klarer geworden..
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.
Cihan S. schrieb: > Schwachsinn. Solch gut begruendete Aeusserungen sind immer wieder koestlich. kjghkfysd
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?!?
Man sollte doch mal endlich eine Sperre einbauen, dass man auf 5 Jahre alte Threads nicht mehr antworten kann.
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.