# Neuentwicklung Automatisierungsplattform



## omgitworks (23 Oktober 2014)

Hallo zusammen!

Ich bin neu hier im Forum und selbst von Beruf Informatiker (mit einigen Elektronikkenntnissen). Eine Zeit lang habe ich eben auch SPSen programmiert und seit meinen Erfahrungen damit immer wieder mit dem Gedanken gespielt, einfach mal eine richtig gute SPS zu entwickeln. Ich weiß, es gibt Systeme, die sind etabliert, aber mir geht es nicht primär um wirtschaftlichen Erfolg, sondern einfach um die Sache an sich. Da ich eben normalerweise als Informatiker immer bleeding-edge Technologien gewöhnt war, hab ich mir oft vorgestellt, wie unglaublich cool es wäre, flüssig lesbaren Code in die SPS zu füllen, schrittweise zu durchlaufen und überhaupt mit einem System zu arbeiten, dass mit modernen Standardtechnologien arbeitet und damit transparent und einleuchtend (und somit intuitiv) ist. Immer wieder wurde ich von der Realität eingeholt und hab dann wieder notgedrungen mit AWL, FUP und dem üblichen rumgemacht  Mich mit PROFIBUS und dem blöden Step7 abgeärgert. Bei dem Versuch eine ordentliche Versionierungsverwaltung einzuführen wurde ich dann schnell auf den Boden der Tatsachen zurückgeholt, als ich gemerkt habe, dass der Quellcode als Datenbank, nicht als Textdatei abgelegt wird. So ein Quatsch! Zumal man den "Innovationsschutz" ohne ganz leicht umgehen kann..

In einem kleinen Testprojekt hab ich also mal den Lötkolben geschwungen und ein kleines System aufgesetzt, dass es uns in der Firma ermöglicht von jedem Handy aus und vom Desktop PC das Klingensignal an der Tür abzufangen und mit einem Klick die Tür zu öffnen. Außerdem wird ein Bild des Eingangsbereich and alle Endgeräte gestreamed (von einer Webcam aus). Das läuft soweit stabil. Das Projekt ist Open Source: https://github.com/cybercatalyst/dooropener

Im Reagenzglas (sozusagen) möchte ich das jetzt modularisieren, also eine Art Version 2.0 bauen. Ich suche Unterstützung beim Elektronikdesign. Zwar habe ich mal mit EAGLE gearbeitet und auch ein paar Platinen selbst erstellt, aber wenn es z.B. darum ginge ein Platinendesign für eine I/O-Karte zu entwickeln, dann überlasse ich das doch lieber dem Profi. Ich habe einfach mal eine Skizze angehängt, was ich im nächsten Schritt umsetzen will. Für Ideen, Ratschläge und Tipps bin ich sehr dankbar.


----------



## Markus (23 Oktober 2014)

Hallo,

damit ich das richtig verstehe:
Du willst eine SPS-Entwicklungsumgebung als Open Source Projekt starten?

Klingt irgendwie cool... ;-)


----------



## omgitworks (23 Oktober 2014)

Hey Markus,

genau  und eben mit sonstigen, offen definierten Schnittstellen. Ohne Lizenzzwang, auch was die Hardware angeht. Ich hab mich schon oft gewundert, warum es das bisher noch nicht gibt. Ich bin mir sehr sicher, dass es machbar ist in einem lockeren Zusammenschluß von Informatikern und Elektronikern etwas großartiges auf die Beine zu stellen. Eine Entwicklungsumgebung und die Systemsoftware usw. zu entwickeln ist eine Fingerübung für mich und im wesentlichen nur eine Zeitfrage.

Um die Ziele nicht zu hoch zu stecken, würde ich mit der Hausautomatisierung anfangen wollen und nach und nach erweitern.


----------



## rostiger Nagel (23 Oktober 2014)

Vielleicht hilft es hier ein wenig zu lesen

http://mc.mikrocontroller.com/de/SPS-ctrl.php

bzw hier

http://www.microsps.com


----------



## omgitworks (23 Oktober 2014)

Hin und wieder habe ich schon nach geeigneter Hardware Ausschau gehalten. Ich tendiere eher dazu auf Hardware zu setzen, die normalerweise in Mobiltelefonen verbaut wird. Also eine Handvoll Kerne, 2 GB RAM und ein paar GB integrierter Flashspeicher dürfen es schon sein. Dieser Teil soll der Verarbeitungslogik dienen. Dazu möchte ich eine Realtimehardware geben, die sich aber eben um nichts anderes als zeitlich kritische Schaltvorgänge kümmert, also die Prozesslogik klar von der Treiberlogik trennen.

Als Feldbus möchte ich einfach Ethernet nehmen und das mit einem Softwarelayer sicher machen. Wie sicher eine Verbindung dann ist, kann man ja einstellen. So können z.B. unkritische Prozessdaten per WLAN übertragen werden, und wenn die Verbindung mal abbricht, stockt halt die Anzeige.


----------



## Ralle (23 Oktober 2014)

Klingt nicht schlecht, aber definiere mal bitte folgende Aussage genauer:



omgitworks schrieb:


> und überhaupt mit einem System zu arbeiten, dass mit modernen Standardtechnologien arbeitet und damit transparent und einleuchtend (und somit intuitiv) ist.



C# z.Bsp. mag ja flüssig lesbar und intuitiv sein, aber ich hab schon so viel Sch... damit erlebt, bei dem mir absolut nicht klar war, warum nun dies oder jenes schief ging. Und genau das kann ich auf einer SPS nicht brauchen. Deswegen normal die Nachfrage, was dir da so vorschwebt.

PS. Selbst bei Delphi ist das Ergebnis manchmal absolut unerwartet ausgefallen, obwohl der Code einfach war. Man kann halt nicht immer unter die Motorhaube schauen.


----------



## omgitworks (23 Oktober 2014)

Ich dachte da an konkret an ECMAscript für die Prozesslogik (im Web bekannt als "Javascript"). Der Vorteil: Es gibt bereits bestehende, leistungsfähige Open-Source Engines und Frameworks, die sich mit C++-Code nahtlos erweitern lassen (z.B. Google's V8 oder QtScript). D.h. man kann die leistungskritischen oder hardwarenahen Dinge in kompiliertem Code verpacken und nahtlos in die Skriptumgebung setzen. Das Setzen von Parametern, Ablauflogik etc. kann ruhig als Skript gehalten werden, das frisst kaum mehr an Leistung. Evtl. könnte man dann zusätzlich eine Schnittstelle anbieten, mit der man nativen Code laden und aufrufen kann - wenn es überhaupt nötig wird. Selbst ein interpretiertes Skript ist auf moderner Hardware um Längen fixer als AWL auf einer S SPS.. Dennoch: Falls z.B. jemand dann direkt auf der SPS Kamerabilder auswerten will, wäre das ganz praktisch.

Es spricht auch nichts dagegen, einfach mehrere Varianten zu probieren und dann zu schauen, was sich als praktikabel herausstellt. Da das Protokoll offen ist, wäre theoretisch denkbar mehrere Konzepte mit Vor-/Nachteilen zu haben. Es ist ja nur der "hochgeschlossenen" Natur z.B. der S Produkte geschuldet, dass sie heute so sind, wie sie sind. (nämlich technisch hoffnungslos veraltet)


----------



## Markus (24 Oktober 2014)

An was für ein OS hast du gedacht?
Hast du dir schon Gedanken um das Thema Remanenz gemacht? Also Stecker raus und Stecker wieder rein...


----------



## Zottel (24 Oktober 2014)

omgitworks schrieb:


> Ich dachte da an konkret an ECMAscript für die Prozesslogik...


Eine unabdingbare Fähigkeit von SPSen ist Echtzeitfähigkeit (heißt nicht: besonders schnell, sondern: garantierte maximale Reaktionszeit). Wenn dass nicht gegeben ist, überfährt irgendein bewegliches Maschinenteil irgendwann einen Endschalter.
Ich stelle es mir etwas schwer vor, mit einer Speicherverwaltung mit _garbage collection_ eine obere Schranke für die Reaktionszeit zu ermitteln oder zu verifizieren ...???


----------



## omgitworks (24 Oktober 2014)

@Markus:

Das Steuersystem ist aktuelle ein Linux Server System (genaugenommen Ubuntu 14.04 Server). Das Problem mit der Remanenz habe ich über init.d-Skripte gelöst, also wenn man den Stecker rauszieht und wieder rein, dann fährt das Steuersystem selbst hoch und startet anschließend die Steuersoftware. Das war notwendig, weil bei uns die Putzfrau manchmal einfach den Stromstecker gezogen hat 

@Zottel:

Die Steuersoftware ist ja eine "Mixtur" aus C++ und ECMAscript. Das meinte ich mit: Ablauflogik und Steuerlogik trennen. Man muss die Denkweise beim Programmieren überdenken, also nicht: Jetzt frage ich den Wert ab, dann den Wert, dann den Endschaltereingang usw., sondern man würde jetzt in ECMAscript in der Initialisierungsmethode definieren: "An dem Eingang xy sitzt ein Endschalter. Abfrageinterval 10ms, wenn Low dann -> Notstop." Den Rest macht dann das System. Ansonsten halte ich das eher für ein theoretisches Problem und würde nur bei sicherheitskritischeskritischen Dingen (Endschalter, Notaus) usw. so arbeiten. Ich meine, es gibt Compiler, die C Programme zu Javascript kompilieren, sodass man diese im Browser ausführen kann. Diese Programme laufen absolut flüssig.

Zudem kann man das Verhalten des GC noch beeinflussen. Man kann ihn abschalten, oder ihn oft laufen lassen. Nichtsdestrotrotz ist die Verzögerungszeit durch den GC in der Praxis einfach sehr gering. Wie gesagt, ich halte das Problem eher für ein theoretisches und bin mir sogar ganz sicher, dass das Abfrageinterval des Endschalters mit ECMAscript in der Praxis sogar deutlich unter dem Abfrageinterval mit einer SPS liegen wird. Man müsste da einfach mal messen und schauen wie es sich verhält. Zur Not nimmt man z.B. einen Hardwarewatchdog mit dem Wissen, dass der Fall zu 99,99% nicht auftritt.


----------



## Krumnix (24 Oktober 2014)

omgitworks schrieb:


> flüssig lesbaren Code in die SPS zu füllen, schrittweise zu durchlaufen



Hier sehe ich das Problem von 2 Welten. Die Welt der Hochsprachen und die Welt der Automatisierung. Ich erlebe immer wieder, das Hochsprachen-Programmierer, wenn sie mal in die Welt der Automatisierung eintauchen, der Meinung sind, das man die Welt der Hochsprachen auf die Welt der Automatisierung umlegen kann. Das wird aber nie funktionieren.
Eine "schrittweise" Abarbeitung eines Programmes wird es nie in der Automatisierung geben. Du kannst schließlich unmöglich der Zylinder sagen,  fahr mal vor aber erreich nicht die Endlage, sondern halte nen millimeter davor an, damit ich 
mein Programmcode genau an der Stelle stoppen kann. 
Eine Automatisierung ist ein System, das zyklisch immer in einer festen Zeit ablaufen muss. Irgendwelche Ereignisgesteuerten Abfragen (bedingt möglich z.B. bei Siemens mit OBs) oder Programmanhaltepunkte zu setzen wird in dieser Welt nicht möglich sein.
Auch muss 100% garantiert werden, dass das System immer wieder das gleiche tut. Wie schon erwähnt wurde, muss eine "Echtzeitfähigkeit" gegeben werden. 

Als Open-Source sicher eine nette Idee sich damit zu beschäftigen. Aber ich bin mir jetzt schon sicher, dass der Aufwand und die Komplexibilität das Projekt zum Scheitern bringt, oder am Schluss dann genauso "kompliziert" wird, wie die aktuellen Systeme.


----------



## omgitworks (24 Oktober 2014)

Ich würde mich ehrlich gesagt nicht damit aufzuhalten, Dinge nicht auszuprobieren, weil ich glaube sie könnten nicht funktionieren. Ich weiß aus anderen Projekten mit Sicherheit (ich hab mit Audiohardware gearbeitet, die in Echtzeit arbeiten muss), dass es möglich ist, eine Echtzeitfähigkeit zu garantieren. Andersrum wird ein Schuh daraus: Während ich zwar von vornherein technisch gesehen keinen theoretischen Beweis liefern kann, dass Echtzeit auf nicht-Echtzeitsystemen möglich ist, kann ich statistisch aus der Praxis heraus sagen, dass sich das zu 99,99% nicht auswirkt. Dennoch kann (und muss) man eine zusätzliche Hardware hinzufügen, die in Echtzeit als eine Art Watchdog interveniert und sicherstellt, dass nichts aus dem Ruder läuft.

Ab einer gewissen Größe ist das immer der gangbare Weg. Z.B. sind Feldbusse technisch gesehen auch nicht Echtzeit-sicher (niemand kann garantieren, dass das Signal in einer Zeit X ankommt)! Was für einen Bus funktioniert, funktioniert auch für die Steuerlogik.


----------



## weißnix_ (24 Oktober 2014)

omgitworks schrieb:


> @Markus:
> 
> Das Steuersystem ist aktuelle ein Linux Server System (genaugenommen Ubuntu 14.04 Server). Das Problem mit der Remanenz habe ich über init.d-Skripte gelöst, also wenn man den Stecker rauszieht und wieder rein, dann fährt das Steuersystem selbst hoch und startet anschließend die Steuersoftware. Das war notwendig, weil bei uns die Putzfrau manchmal einfach den Stromstecker gezogen hat



Das mit dem automatischen Starten der Automatisierungssoftware sollte wohl selbstverständlich sein.
Markus seine Frage bezog sich wohl eher auf Variablen, deren Werte zur Laufzeit errechnet werden. Die Anlage kann nicht immer mit default-Werten gestartet werden.


----------



## omgitworks (24 Oktober 2014)

Die Werte können auf dem Festspeicher natürlich abgelegt und geladen werden. Oder verstehe ich die Frage falsch?


----------



## Aventinus (24 Oktober 2014)

Aber wenn du Werte hast die sich im Sekundentakt (oder noch schneller) ändern, schreibst du die bei jeder Änderung auf die Festplatte?


----------



## weißnix_ (24 Oktober 2014)

Die Variablenzugriffe laufen üblicherweise komplett im RAM. Festspeicherzugriffe sind idr um eine Zehnerpotenz langsamer. Sich schnell ändernde Aktualwerte "sicherheitshalber" über Festspeicher laufen zu lasssen wird wohl ein Performanceproblem verursachen. Du brauchst also einen Mechanismus, der die Werte, die als "remanent" gekennzeichnet sind sicher nach einem Netzausfall wiederherstellen kann. Transparent. Also ohne besondere Programmvorkehrungen.


----------



## Zottel (24 Oktober 2014)

omgitworks schrieb:


> Ich würde mich ehrlich gesagt nicht damit aufzuhalten, Dinge nicht auszuprobieren, weil ich glaube sie könnten nicht funktionieren.


 Ausprobieren ja, aber das Ding ist wenn dir 10000 mal Ausprobieren zu sagen scheint, dass es funktioniert, ist das nicht viel wert. Wenn das im 7x24-Stunden Betrieb betrieben wird, dann hast du jede Nacht die Chance auf den Watchdog...


omgitworks schrieb:


> Ich weiß aus anderen Projekten mit Sicherheit (ich hab mit Audiohardware gearbeitet, die in Echtzeit arbeiten muss), dass es möglich ist, eine Echtzeitfähigkeit zu garantieren.


"Garantieren" ist für mich ganz etwas anderes als "meistens zu erreichen"


omgitworks schrieb:


> Andersrum wird ein Schuh daraus: Während ich zwar von vornherein technisch gesehen keinen theoretischen Beweis liefern kann, dass Echtzeit auf nicht-Echtzeitsystemen möglich ist, kann ich statistisch aus der Praxis heraus sagen, dass sich das zu 99,99% nicht auswirkt.


Hört sich gut an, aber bei näherer Betrachtung ist 99,99 fast eine Stunde pro Jahr bei 7x24x365-Stunden-Einsatz. Klar gibt es auch Fälle, wo eine Anlage mal wegen eines Fehlers einer konventionellen SPS ausfällt. Aber hier handelt es sich um den Durchschnitt!


omgitworks schrieb:


> Dennoch kann (und muss) man eine zusätzliche Hardware hinzufügen, die in Echtzeit als eine Art Watchdog interveniert und sicherstellt, dass nichts aus dem Ruder läuft.


Dann kommst du zur Anlage, die vom Watchdog in einem beliebigen Zustand hart gestoppt wurde, die Steuerung hat neu gebootet, die Ursache bleibt im Dunkeln.


omgitworks schrieb:


> Ab einer gewissen Größe ist das immer der gangbare Weg.


Das Gefühl habe ich auch... 


omgitworks schrieb:


> Z.B. sind Feldbusse technisch gesehen auch nicht Echtzeit-sicher


Doch! Das ist z.B der Unterschied zwischen Token Ring (Profibus) und CSMA/CD (Ethernet).


omgitworks schrieb:


> (niemand kann garantieren, dass das Signal in einer Zeit X ankommt)! Was für einen Bus funktioniert,


Doch, genau das kann man (auf der Logik-Ebene). Auf der physikalischen kann man es natürlich nicht (Wackelkontakt, Stromausfall, Elektromagnetische Störungen, Bauteilversagen).


omgitworks schrieb:


> funktioniert auch für die Steuerlogik.


Jetzt sage ich: Ja. Und so wird ein Schuh draus: Was man bei den Bussen anstellt, um die Durchlaufzeit zu GARANTIEREN, das kann man auch bei der Steuerung tun. Beispiele RTLinux, RTAI: Da läuft ein "kleines" Echtzeit-Betriebssytem und führt dann Linux als seine Idle-Task aus, wenn sonst nichts anliegt. Die Echtzeit-Tasks bekommen im einfachsten Fall per Timer-Interrupt gleichgroße Zeitscheiben zugeteilt und müssen halt so gestaltet sein, dass sie innerhalb einer Zeitscheibe fertig werden. Typischerweise enthalten sie keine Schleifen, keine Rückwärtsprünge und keine verketteten Listen, so dass man einfach die Laufzeit des längsten Ausführungspfades ermitteln könnte.
(Natürlich kann man auch Schleifen, Rückwärtsprünge und verkettete Listen auf einer herkömmlichen SPS programmieren und damit deren Echtzeitfähigkeit zunichte machen).


----------



## marlob (24 Oktober 2014)

omgitworks schrieb:


> .. Während ich zwar von vornherein technisch gesehen keinen theoretischen Beweis liefern kann, dass Echtzeit auf nicht-Echtzeitsystemen möglich ist, kann ich statistisch aus der Praxis heraus sagen, dass sich das zu 99,99% nicht auswirkt. Dennoch kann (und muss) man eine zusätzliche Hardware hinzufügen, die in Echtzeit als eine Art Watchdog interveniert und sicherstellt, dass nichts aus dem Ruder läuft.
> ...


Es gibt für Linux (welches du einsetzen willst) auch Echtzeiterweiterungen wie z.B. RTAI https://www.rtai.org/


----------



## omgitworks (24 Oktober 2014)

Ok, ja, das ist unproblematisch. Man müsste das dann eben im Softwaredesign vorsehen. Mechanische Festplatten kommen ohnehin nicht in Frage, sondern aufgrund der guten mechanischen Belastbarkeit eben SSDs.

Ich weiß, die Performance bezog sich jetzt auf die Schreibperformance der HDD. Was die Ausführungszeit angeht, habe ich bei meiner Audioanwendung mit 44,1 kHz/jeweils 4096 je Eingangspuffer mehrere FFTs (Software) bei einer "Zykluszeit" von dauerhaft unter 10ms bei 30% Prozessorauslastung (d.h., tatsächlich wurden dauerhaft nur etwa 3ms von max 10ms gebraucht, über 10ms Zykluszeit würde bedeuten, dass die Echtzeitanforderung nicht mehr eingehalten werden kann, Ergebnis kommt zu spät an) realtime auf einem AMD Athlon 1800MHz (single core) *mit graphischer Oberfläche und Berechnung einer Visualisierung *ausgeführt. Die heutigen Mobilprozessoren sind zum einen deutlich leistungsfähiger und man berechnet natürlich keine FFTs, was nochmal eine ganze Ecke mehr an Rechenleistung veranschlagt als ein paar Werte zu vergleichen und zu setzen. Ich erwähne das nur, um ein Gefühl dafür zu bekommen, von was wir reden, wenn ich sage, statistisch gesehen wäre es "Echtzeit". Das sind jetzt gemessene Erfahrungswerte, keine theoretischen Überlegungen.

edit:
Ich werde demnächst mit dem Design und der Entwicklung der Software starten, wollte allerdings einfach mal nachhören, wie allgemein so die Resonanz ist. Die Gehäuse von Phoenix Contact sind schonmal ein guter Start. Ich suche eben Bauteile, die alltäglich sind und bei denen garantiert ist, dass die in nächster Zeit nicht vom Markt verschwinden.


----------



## Gerhard Bäurle (24 Oktober 2014)

Hallo,

so wie ich das verstanden habe, ist bei den SPSen in 
der Regel kein klassisches Betriebssystem im Einsatz. 

Definierte Reaktionszeiten sind wohl einfacher zu,
realisieren, wenn man die Hoheit über das gesamte 
System hat. Zudem vermute ich, dass man für ein 
SPS-Laufzeitsystem nur einen Bruchteil der Funktionen 
von Betriebssystemen wie Windows oder Linux 
benötigen würde.

Bei CoDeSys ist das Laufzeitsystem direkt auf die 
Hardware portiert und bei Siemens wohl auch.

Damit wird das Thema nicht unbedingt einfacher,
wobei andererseits die Verbreitung von Raspberry 
und Arduino Mut macht.


----------



## Ottmar (25 Oktober 2014)

Hi!

Also ich hab lieber ein veraltetes System, welches zuverlässig funktioniert, als ein System welches hochmodern ist und einen unruhigen Schlaf verursacht.

Begrenzte Möglichkeiten darf man in der Automatisierungstechnik nicht als Nachteil sehen, sondern als Sicherheitsplus. Je weniger Möglichkeiten man hat, desto weniger Lösungskombinationen können entstehen. Dieses Prinzip wird ja auch bei F-Steuerungen angewandt.

Wenn man jahrelang mit einem System zu tun hat, dann kennt man seine macken und Vorteile genau. Erstere gilt es zu umschiffen und zweitere muss man intelligent anwenden. Und wenn man das beachtet gibt es kaum etwas was man nicht realisieren kann.
ein Automatisierungssystem ist kein modernes Handy, welches jeder bedienen können muss. Es benötigt Fachkräfte für diese Aufgaben und davon das zu kapieren ist für viele Menschen noch ein weiter weg. Nur weil die klassischen SPS-Programmiersprachen primitiv aussehen und Grenzen aufzeigen, bedeutet das nicht dass sie in ihrer Anwendung auch primitiv sind. Man will ja die IT-welt auch nicht mit FUP oder AWL revolutionieren. Das sind zwei komplett verschiedene Welten und Fachkräfte werden diese Welten niemals mehr als nötig vermischen.

Ich finde den Denkansatz gut. Aber wieso etwas verändern was doch eigentlicht in Millionen von Anlagen funktioniert? Wieso nicht eher beide Stärken kombiniert verwenden, als sie zu vermischen?
Zum Beispiel wäre ein Prozessor für die Echtzeit-Prozessabläufe sinnvoll und ein zweiter Prozessor für andere Aufgaben. Aber ähnliches macht man ja ohnehin bei Leitsystemen. Und da kommen die Fachkräfte ins Spiel, die die richtige Lösung für eine Problemstellung finden können.


Gruß,

Ottmar


----------



## Gerhard Bäurle (25 Oktober 2014)

Ottmar schrieb:


> Wenn man jahrelang mit einem System zu tun hat, dann kennt man seine macken und Vorteile genau. Erstere gilt es zu umschiffen und zweitere muss man intelligent anwenden. Und wenn man das beachtet gibt es kaum etwas was man nicht realisieren kann.



Bist Du kurz vor dem Ruhestand? 

Ernsthaft: Alte Macken entfernen und neue konstruieren, 
dass ist doch unser Leben. Nennt sich Fortschritt.


----------



## omgitworks (25 Oktober 2014)

Hallo Ottmar,

ich stimme Dir in allen Punkten sogar zu. Es gibt einfach verschiedene Szenarien, in denen ich eine andere Taktik bei der Wahl der Technologie fahren würde. Im Tagesgeschäft würde ich wahrscheinlich immer zu dem greifen, was ich in- und auswendig kenne, gerade bei großen und/oder sicherheitskritischen Projekten.

Von Zeit zu Zeit ergibt es sich, dass sich durch den Fortschritt Möglichkeiten geben, dass die Vorteile so verlockend werden, dass man mal die Zeit und Kraft investieren kann, um ein wenig abseits der bekannten Pfade zu schauen. Während man vor viele Jahren z.B. noch eine klare, technologische Trennung zwischen Website-Programmierung und Anwendungsprogrammierung hatte, sind diese beiden Felder heute fast verschmolzen. Man entwirft die Oberflächen von Anwendungen heutzutage z.B. sehr ähnlich wie die einer Website, was sehr komfortabel ist. Gleichzeitig wendet man bekannte Entwurfsstrategien für Anwendungen auch auf Webseiten an, wo früher einfach ein paar Skripte Inhalte generiert haben.

Jede Technologie hat zu einem Zeitpunkt seine Berechtigung, sonst hätte sie sich nicht durchgesetzt. Für die Multimediafunktionalität der Zukunft wurden die etablierten Systeme aber nicht geschaffen,sie sind zu klobig, zu teuer, zu langsam und nur mit speziellen Systemen zu programmieren. Oder würdest Du deine Hausautomation mit einer S7 bewerkstelligen? Und die Heizungssteuerung (z.B. Heizung 1 Std vor deinem Eintreffen mit dem Handy einschalten)? Und Daten aus der Produktionshalle per WLAN an Bürorechner schicken (geht, aber nicht mit S7 Bordmitteln, man braucht Zusatzhardware)? Die Technik ist eigentlich schon überall vorhanden, wir legen sie nur zwiebelschalenartig umeinander und machen die Dinge damit unnötig kompliziert. Das führt dann z.B. dazu, dass mehrere Hersteller für solche Dinge wie die Hausautomatisierung ihr eigenes Süppchen kochen.

Es geht mir nicht darum, die hippe, bahnbrechende Technologie zu entwickeln. Ich will (und werde) einfach tun, was mir sinnvoll erscheint. In kleinen Schritten, ohne Zeitdruck. Ich hatte mit gestern noch den Raspberry Pi B+ angeschaut: http://www.raspberrypi.org/products/model-b-plus/

Das Modul kostet 30 Euro und hat einen 40 Pin GPIO, das heißt, ich könnte z.B. jede I/O-Karte problemlos damit ausstatten. Eine Relaisplatine, 24V Spannungsversorgung, Eingangsschutzbschaltung und ein kleines bisschen Code sowie Gehäuse, und schon habe ich die Elektronik für die skizzierte 20 Input / 20 Output Karte. Streng genommen kann jedes der 40 Pins als Input und als Output arbeiten, vielleicht kann man da mit schlauer Elektronik sogar IOs draus machen und muss die lästige Unterscheidung zwischen Input und Output nicht mehr machen?


----------



## UniMog (25 Oktober 2014)

Krumnix schrieb:


> Hier sehe ich das Problem von 2 Welten. Die Welt der Hochsprachen und die Welt der Automatisierung. Ich erlebe immer wieder, das Hochsprachen-Programmierer, wenn sie mal in die Welt der Automatisierung eintauchen, der Meinung sind, das man die Welt der Hochsprachen auf die Welt der Automatisierung umlegen kann. Das wird aber nie funktionieren.
> Eine "schrittweise" Abarbeitung eines Programmes wird es nie in der Automatisierung geben. Du kannst schließlich unmöglich der Zylinder sagen,  fahr mal vor aber erreich nicht die Endlage, sondern halte nen millimeter davor an, damit ich
> mein Programmcode genau an der Stelle stoppen kann.
> Eine Automatisierung ist ein System, das zyklisch immer in einer festen Zeit ablaufen muss. Irgendwelche Ereignisgesteuerten Abfragen (bedingt möglich z.B. bei Siemens mit OBs) oder Programmanhaltepunkte zu setzen wird in dieser Welt nicht möglich sein.
> ...



100% ACK



Ottmar schrieb:


> Hi!
> 
> Also ich hab lieber ein veraltetes System, welches zuverlässig funktioniert, als ein System welches hochmodern ist und einen unruhigen Schlaf verursacht.
> 
> ...



Unsere studierten hantieren ja in ihrer Studienzeit mit diesen tollen Texteditoren (C#, Pascal, C, C++) herum und glauben durch den Ausdruck Hochsprache 
also eine  höhere Programmiersprache ist das was am Ende heraus kommt auch besonders intelligent.
Das Problem ist eigentlich das unsere Hochsprachen-Programmierer genauso dumm sind wie die KOP, FUL, AWL - Programmierer. 
Beide haben eigentlich keine Lust was anderes zu lernen und damit den Horizont zu erweitern
Ich bin der Meinung das man beides gut strukturiert miteinander kombinieren muß.

Open-Source sicher eine schöne Idee aber die geht genauso schnell wie sie gekommen ist


----------



## bike (25 Oktober 2014)

UniMog schrieb:


> Open-Source sicher eine schöne Idee aber die geht genauso schnell wie sie gekommen ist



Zum Glück hast du nicht Recht.
Sowohl Linux als auch libreoffice, java, apache, eclipse usw. sind Projekte die seit Jahren leben und gegen die geschlossen Systeme, die uns knebeln wollen, bestehen.
Wenn jeder so denken würde wie du, dann gäbe viele Dinge im Netz oder lokal nicht.

Es widerspricht vermutlich deiner Anschauung zu Software und deren Nutzung, doch es gibt viele Menschen, die den Opensource Gedanken weiterführen, z.B. Thomas und Zottel und Jochen tbc.


bike


----------



## omgitworks (25 Oktober 2014)

Ich habe dem Projekt einfach mal auf den Namen CATS getauft. Weil das ein lustiger Name ist und jeder sich gerne Katzenbilder im Netz anschaut. Es steht für Collaborative Automation Technology System, also zu deutsch ganz schnöde: "gemeinsam entwickeltes Automatisierungssystem". Im Moment bin ich am überlegen wie man sich am besten organisiert, ob ich einfach mal eine textbasierte Website aufsetze um mal alles an Input zusammenzutragen. Wer Interesse hat, kann sich ja einfach mal melden. Ideen vor! 

PS: Die Bestellung für den Raspberry Pi B+ ging grad raus :s18:


----------



## UniMog (25 Oktober 2014)

bike schrieb:


> Zum Glück hast du nicht Recht.
> Sowohl Linux als auch libreoffice, java, apache, eclipse usw. sind Projekte die seit Jahren leben und gegen die geschlossen Systeme, die uns knebeln wollen, bestehen.
> Wenn jeder so denken würde wie du, dann gäbe viele Dinge im Netz oder lokal nicht.
> 
> ...



Danke......

bei Linux... fühl ich mich auch geknebelt...... immer wenn ein paar damit Geld verdienen..... Also kein großer unterschied in meinen Augen
und um bei Linux zu bleiben...... zum Glück konnte ich wählen und würde Linux noch nicht mal nehmen selbst wenn ich dafür Geld bekommen würde... Aber das ist Geschmackssache


----------



## bike (25 Oktober 2014)

UniMog schrieb:


> Danke......
> 
> bei Linux... für ich mich auch geknebelt...... immer wenn ein paar damit Geld verdienen..... Also kein großer unterschied in meinen Augen
> und um bei Linux zu bleiben...... zum Glück konnte ich wählen und würde Linux noch nicht mal nehmen selbst wenn ich dafür Geld bekommen würde... Aber das ist Geschmackssache



Also ich werde dafür bezahlt, dass ich Win$ verwende.

Welches Problem hast du denn von und wegen Linux?
In meinen VM`s unter openSUSE funktioniert sogar TIA. 

Nix für ungut, doch wer sich Win8 ohne Pistole an der Schläfe antut, der hat vermutlich ein anderes, echtes Problem.
Ich brauch keine APPs, sondern Programme zu sinnvoll, effektiv arbeiten.


bike


----------



## UniMog (25 Oktober 2014)

Ich benutze auch kein Win 8..... mein Win 7 reicht mit.
Wir kennen das doch von MS das einige Versionen kompletter Müll sind und waren wie zb. Win 98ME oder Vista... also auf Win 9 warten.
Aber wie gesagt ... openSUSE noch nicht einmal für Geld würde ich das benutzen

Und ja das mit den APPs kotzt mich auch an die brauch ich auch nicht und auch kein 25-Finger Multitouch... lach


----------



## bike (25 Oktober 2014)

UniMog schrieb:


> ... also auf Win 9 warten.



Es wird kein Win9 geben.
Sondern die nächste Version wird / soll Win 10 heißen.

Und wegen M$:
Seit Jahren habe ich privat und auch in den Firmen hier, die neu aufgebaut werden / wurden openSUSE im Einsatz und das funktioniert ohne viel Kosten.
Bluescreen kennen wir hier nicht mehr.

Mir hast du Hilfe wegen TIA angeboten, ich biete dir Hilfe von und mit Linux an. ;-)
Seit SUSE 2.1 verwende ich es und bin relativ zufrieden.


bike


----------



## omgitworks (25 Oktober 2014)

Ich möchte mich erstmal bei allen für den Input bedanken, auch wenn viel Skepsis im Spiel ist. Das zeigt mir, was eigentlich die Ängste und Vorbehalte sind (oder positiv ausgedrückt: was bei einer SPS die Schlüsselelemente für euch sind). Das ist sehr wertvoll für mich! Den für die Tonne arbeitet niemand gern.


----------



## Onkel Dagobert (25 Oktober 2014)

omgitworks schrieb:


> Ich habe dem Projekt einfach mal auf den Namen CATS getauft. Weil das ein lustiger Name ist und jeder sich gerne Katzenbilder im Netz anschaut...


"CATS" gibt es aber schon. Es ist ein (vermutlich veraltertes) Softwaresystem für Prüfstände, zufällig von Siemens. Wie wäre es mit "Mietzekatze", oder kurz "MIA", *"M*it *I*ntelligenz *A*utomatisieren"?


----------



## omgitworks (25 Oktober 2014)

Naja, da wird Siemens wohl mit leben müssen


----------



## Blockmove (26 Oktober 2014)

Wenn es dir vorrangig um Homeautomation, Internet of Things, Multimedia, Bedienung per App geht, dann schau dir mal folgende Projekte / Produkte an:

IP-Symcon
fhem
loxone
openhab

Dort wirst du schon einen Großteil deiner Ideen umgesetzt finden.
Ich hatte jahrelang IP-Symcon im Einsatz, allerdings ist dies eine reine Windows-Lösung.
Als ich meinen Windows-Homeserver in Ruhestand schickte und durch einen Linux-Server ersetzte, stellte ich von IPS auf fhem um.
Die Programmierung von Anwenderskripten, Szenarien erfolgte in IPS in PHP, fhem nutzt Perl.
Nachdem du schon den Raspi als Plattform angesprochen hast ... fhem läuft darauff völlig problemlos.

Was ich bei beiden Systemen vermisse, ist die klassische SPS-Funktionalität.
Beide Systeme sind überwiegend eventgesteuert.
Sobald die Zusammenhänge komplexer werden, ist die Eventsteuerung einer klassischen SPS unterlegen.

loxone ist mittlerweile eine klasse SPS-Lösung für Homeautomation.
Inklusive Bedienung per Smartphone und auch Kopplung zu Multimedia.
Riesen Vorteil des Systems ist die Integration von KNX.
Nachteil für mich ist die Hardware.
Loxone auf Beckhoff oder Wago-Hardware wäre interessant.

openhab macht zur Zeit sehr große Schritte voran.
Es ist Opensource und hat einen modularen Aufbau und die Anzahl der unterstützten Hardware wächst sehr schnell.
Ich werd mir das System demnächst mal genauer anschauen, da ich mit der Perl-Programmierung von fhem nicht so recht warm werden kann.

Gruß
Dieter


----------



## Loxone Manuel (28 Oktober 2014)

Hallo Dieter,

danke für deinen Beitrag.

Mittlerweile kann der Miniserver auch Modbus TCP und somit sollte auch die Beckhoff Einbindung etwas einfacher sein 
Soweit ich das mitbekommen habe, kann man auch die Wago über UDP einbinden.

Findest man auch einige Beiträge im Loxone Forum.

Gruß
Manuel


----------



## JesperMP (28 Oktober 2014)

Ein compiler für IEC 61131-3 Structured Text sollte es möglich als 'Eigenprojekt' .

Auf PLCTALK gibt es ein Thema Writing an ST compiler.
Vielleicht sollst du dich mit diese Leute in Verbindung setzen.


----------



## omgitworks (28 Oktober 2014)

Ich habe unter http://www.cats-io.com/ einen Blog eingerichtet, den ich regelmäßig updaten werden. Allerdings ist die Kommentarfunktion deaktiviert, da ich denke, dass für das Diskutieren das Forum besser geeignet ist.


----------



## norustnotrust (28 Oktober 2014)

So sehr ich von einer persönlichen Seite das Thema interessant finde so sehr zweifle ich am Erfolg.

Mir fehlt einfach der konkrete Ansatz. Es gibt imho nämlich nicht "die Automation", sowie es auch nicht "die Softwareentwicklung" gibt. Building-Automation und Industrieautomation haben für mich so viel miteinander zu tun wie Motorradfahren mit Autofahren. Ja, beide haben Räder, beide haben einen Motor. In der Industrie ist es wieder eine komplett andere Welt ob du Prozess, Sondermaschine, OEMs, ob du Automotive oder Oil&Gas machst. Ich denke es ist von entscheidender Relevanz sich einen konkreten Anwendungsfall auszusuchen z.B. Home-Automation, diesen zu erfüllen und von dort vielleicht noch weitere zu erschließen. Ich denke das Projekt verläuft sich sonst in Beliebigkeit, zumal es ja schon Projekte gibt z.B. http://www.openplcproject.com die einen ähnlichen Ansatz verfolgen.

Ich habe von Building, Automotive, OEMs usw. mal gar keinen Tau und deswegen verbrenne ich mir dabei nicht die Hände. In der Prozessautomation kann ich nur sagen: vergiss es: Keiner will die selbstgebastelte HW,k einer will die selbstgebastelte Software.


----------



## Werner29 (28 Oktober 2014)

Hallo,



omgitworks schrieb:


> Ich hab mich schon oft gewundert, warum es das bisher noch nicht gibt. Ich bin mir sehr sicher, dass es machbar ist in einem lockeren Zusammenschluß von Informatikern und Elektronikern etwas großartiges auf die Beine zu stellen. Eine Entwicklungsumgebung und die Systemsoftware usw. zu entwickeln ist eine Fingerübung für mich und im wesentlichen nur eine Zeitfrage.



ich kann dir sagen, warum es das noch nicht gibt: Weil das für niemanden eine Fingerübung ist.


----------



## omgitworks (28 Oktober 2014)

Gut, da ich die einzelnen "Bausteine" schon öfter umgesetzt habe, empfinde ich das anders. Hat aber auch viel mit der Plattform zu tun. Wenn ich als Entwickler eine Plattform vorgesetzt bekomme und dafür entwickeln muss, dann hab ich natürlich schlechtere Bedingungen, als wenn ich mir als Entwickler die Plattform aussuchen kann, auf der ich gut entwickeln kann.


----------



## olliew (28 Oktober 2014)

omgitworks schrieb:


> flüssig lesbaren Code in die SPS zu füllen



Was verstehst du unter flüssig lesbaren Code?  Sehen typische SPS-Anwender (i.d.R. alles andere als Informatikern) das genau so?


----------



## omgitworks (28 Oktober 2014)

Zur Sprache:
Flüssig lesbar ist für mich das, was ich mit Wörtern  beschreiben kann. In den Hochsprachen ist es normal, dass man  selbstdokumentierend und sehr verbos schreibt, also aus der Anweisung  heraus ersichtlich ist, was es tut. Die Regel ist: Wenn ich einen  Kommentar abfassen muss, der erklärt was der Codeabschnitt verrichtet,  dann ist es schlechter Code. Abkürzungen für Anweisungen zu verwenden  stammt noch aus der Zeit, als die Editor noch nicht mächtig genug waren,  um Codevervollständigung zu leisten. Man wollte sich schlicht Tipparbeit ersparen.

Wenn  ich heutzutage programmiere, dann gebe ich ein "sOV" und drücke Enter.  Der Editor macht daraus dann "setOutputValue". Ebenso gibt es Funktionen  zur Massenbearbeitung, starke Suchfunktionen und sehr mächtige  Assistenten. Es gibt einfach keine Notwendigkeit mehr Programme in  Abkürzungen zu verfassen. Flüssig lesbar wäre z.B:

motorSortierer.setzeDrehzahl(1000);
motorSortierer.starteBewegung();

Da  SPS-Anwender und Informatiker i.d.R. lesen und schreiben können, glaube  ich nicht, dass die jeweiligen Definitionen von "gut lesbar" weit  auseinanderstehen 

Allgemein:
Basierend  von dem, was ich so erlebt habe, sind SPS-Programmierer sehr schwer zu  überzeugen, sie klammern sich geradezu an das bereits Gelernte.  Unternehmen, die SPS-en entwickeln, müssen sich nach den Wünschen der  Nutzer richten, da sie wirtschaftlich abhängig sind. Mir ist das ehrlich  gesagt ziemlich egal, ob viele oder wenige das gut finden, was ich  entwickle. Jeder kann selbst für sich entscheiden, ob er sich den  täglichen Schmerz antun will oder nicht. Frei nach Picasso: Ein Maler  malt das, was er verkauft, ein Künstler verkauft das, was er malt.

Einen schönen Abend!


----------



## Blockmove (28 Oktober 2014)

Dein Beispiel zu lesbaren Code kann ich heute eigentlich mit jeder modernen SPS Entwicklungsumgebung umsetzen.
Schau dir mal als Beispiel Codesys V3.x an.
Das bekommst du auch für den Raspberry.

Beim lesen vieler deiner Aussagen bekomme ich den Eindruck dass du wenig Ahnung von moderner SPS-Programmierung hast.


----------



## weißnix_ (28 Oktober 2014)

omgitworks schrieb:


> Zur Sprache:
> motorSortierer.setzeDrehzahl(1000);
> motorSortierer.starteBewegung();



Siehe auch Blockmove's Kommentar.
Du bist hier schon auf einem recht hohen Abstrahierungslevel.
Woher weiss jetzt der Motor, *wie *er das machen soll?

Hinter diesen einfachen Befehlen steht eine ganze Menge Schnickschnack. Es ist einfach, eine Funktion genauso zu schreiben, das im Hauptprogramm genau Deine beiden Funktionsaufrufe stehen.


----------



## omgitworks (28 Oktober 2014)

Einerseits bin ich froh, dass alles im Detail hinterfragt wird.  Andererseits steht auch die Frage im Raum, ob das zu diesem Zeitpunkt  schon auf diesem Level notwendig ist. Schließlich habe ich kein 800  Seiten starkes Designdokument und drei Prototypen im Rucksack, sondern  vielmehr einen Haufen an Puzzlestücken, von denen ich theoretisch  erstmal weiß, dass da was gutes draus werden kann. Da kann man nicht  erwarten, dass ich euch hier Code Listings präsentiere, aus denen alles  ersichtlich wird, so schnell bin ich dann doch nicht 

Merkwürdigerweise  nehmen alle an, dass ich auf ST abziele. Das ist aber nicht der Fall,  dann müsste ich sehr viel in Eigenregie schreibe. Es gibt da draußen  bereits fertige, gut gewartete Engines für anderen Sprachen (hatte ich  ein paar Seiten vorher erwähnt), z.B. Google's V8. Es wäre völlig absurd  da selbst zu entwickeln, schließlich möchte ich in diesem Leben noch  fertig werden.

Ich gehe die Sache in kleinen Schritten an. Für  konkrete Hinweise bin ich wirklich dankbar. Eine Grundsatzdiskussion  über Sinn/Unsinn würde ich gerne vermeiden, da es der Sache an sich  nicht zuträglich ist. Wer die Idee für unsinnig hält, der kann der  Diskussion ja einfach fernbleiben oder nur mitlesen.


----------



## Blockmove (28 Oktober 2014)

omgitworks schrieb:


> Merkwürdigerweise  nehmen alle an, dass ich auf ST abziele. Das ist aber nicht der Fall,  dann müsste ich sehr viel in Eigenregie schreibe. Es gibt da draußen  bereits fertige, gut gewartete Engines für anderen Sprachen (hatte ich  ein paar Seiten vorher erwähnt), z.B. Google's V8. Es wäre völlig absurd  da selbst zu entwickeln, schließlich möchte ich in diesem Leben noch  fertig werden.



Ob du nun ST, Javascript, PHP oder eine sonstige imperative bzw. objektorientierte Programmiersprache verwendest ist eigentlich egal.
Die dahinterliegenden Konzepte (Kontrollstrukturen, Schleifen, OO) sind ähnlich und für die Funktionsweise einer SPS wenig entscheidend.

Interessant für ein gutes Automatisierungsystem sind Dinge wie Hardware-Einbindung, Schnittstellen, Datenhaltung, Online-Debug (Status) oder Online-Change.

Gruß
Dieter


----------



## omgitworks (28 Oktober 2014)

Dieter,

in diesem Zusammenhang mit o.g. sind noch folgende Infos Gold wert:

Was machen deiner Ansicht nach bestehende Systeme schon besonders gut (aus Nutzersicht)?
Was stört dich desöfteren an bestehenden Systemen?
VG und Danke


----------



## Krumnix (29 Oktober 2014)

Vielleicht sollte man hier mal anmerken, dass das Endprodukt, sprich das SPS-Programm, stark zu vergleichen ist mit Assembler in der PC-/Hochsprachen-Welt.
Wenn ich eine Funktion bis nach ganz unten an die Hardware-Ebene ausprogrammiert habe, dann kann ich sie auch in der oberen Ebene, sprich der Hochsprache einsetzen.
Dies gibt es in der SPS-Welt nicht. Ich kann nicht eine Funktion schreiben, die für alle Umrichter der Welt gültig ist, da jeder Umrichter anders funktioniert.
Also muss ich für jeden Umrichter eine Funktion "in Assembler" schrieben, die ich später in der Hochsprache nutzen kann.
So einen Unsinn macht kein Mensch, wenn er auf der Baustelle sitzt und für diese Aufgabe nur 4h Zeit bekommt.

Daher programmiert die SPS-Welt sehr Hardware-Nah und jeder SPSler kommt mit der Sprache, den Regeln und den Anweisungen zurecht.
Ein ITler, der in diese Welt kurz reinschaut, kommt damit nicht zurecht. Er wird auch nie damit zurecht kommen, weil beides komplett unterscheidliche Welten sind.


----------



## Werner29 (29 Oktober 2014)

omgitworks schrieb:


> Flüssig lesbar wäre z.B:
> 
> motorSortierer.setzeDrehzahl(1000);
> motorSortierer.starteBewegung();


Genauso kann man mit CODESYS programmieren. Im übrigen ist Objektorientierung auch Teil des neuen Sprachstandards 61131-3 3rd Edition.


omgitworks schrieb:


> Basierend von dem, was ich so erlebt habe, sind SPS-Programmierer sehr schwer zu überzeugen, sie klammern sich geradezu an das bereits Gelernte.


Das ist wohl wahr.



omgitworks schrieb:


> Es gibt da draußen  bereits fertige, gut gewartete Engines für anderen Sprachen (hatte ich  ein paar Seiten vorher erwähnt), z.B. Google's V8. Es wäre völlig absurd  da selbst zu entwickeln, schließlich möchte ich in diesem Leben noch  fertig werden.


Worin soll eigentlich dein Beitrag genau bestehen? Du willst keinen Compiler schreiben, keine Runtime und ich vermute auch keinen (Text-)Editor. 
Es ist doch jetzt schon alles da, es wird doch niemand daran gehindert eine SPS zu bauen, die man mit JavaScript, C#, python oder was auch immer programmiert?


----------



## omgitworks (29 Oktober 2014)

Hallo Bernhard,

aber natürlich wird es eine IDE geben. Ebenso eine Runtime (fast geschenkt). Den Compiler bekomme ich schon geschenkt. Zudem ist alles davon Open Source, vollständig plattformunabhängig (kein Java, sondern nativer Code mit Qt) und verwendet Standardtechnologien. Ist CODESYS denn Open Source?

Ich finde ehrlich gesagt, du sitzt mit deinen Antworten etwas nervös am Abzug. Lass mich erstmal ein bisschen Vorarbeit leisten, dann kannst Du dir alle Details in Ruhe durchlesen. Und dann ist auch der richtige Zeitpunkt denke ich, Kritik zu äußern. Noch hast du garnichts gesehen und hältst das Projekt für überflüssig. Das kaufe ich dir nicht ab


----------



## zotos (29 Oktober 2014)

Krumnix schrieb:


> ...
> Daher programmiert die SPS-Welt sehr Hardware-Nah und jeder SPSler kommt mit der Sprache, den Regeln und den Anweisungen zurecht.
> Ein ITler, der in diese Welt kurz reinschaut, kommt damit nicht zurecht. Er wird auch nie damit zurecht kommen, weil beides komplett unterscheidliche Welten sind.



Ich möchte nicht auf ST/SCL und AS/Graph verzichten. Die SPS Hardware nähe ist für mich uninteressant ich denke eher an die Hardware von der Maschine bzw. Anlage und um die zu Programmieren sind die Ansätze der OOP sehr nützlich. 

Auf AWL kann ich dabei getrost verzichten.


----------



## Krumnix (29 Oktober 2014)

Hmmm. Beispiel:
Ausgang A1.0 auf "1" setzen.

SPS:

```
U M1.1 (VKE=1)
= A1.0
```

"Hochsprache":

```
if Intern_Speicher.Bereiche.1.1.lesen = true then
Teilnehmer1.Ausgang.Bit.1.setzen(true)
end if
```

Wenn ich jedes mal soviel schreiben muss, nur weil eine Person, die nicht aus der SPS-Welt kommt, das versteht, dann kann mein Chef jetzt schon sich darauf einstellen, dass ein Programm kein 20h sondern 80h braucht....
Klar, kann man in der Hochsprache das sehr schön lesen, aber das braucht kein SPSler, der sein Handwerk versteht 

Edit: Wenn ich Berechnungen oder komplexe Auswertungen mache, dann greife ich auch zu SCL, das ist klar. Aber sowas brauche ich recht selten, wenn ein Antrieb von Sensor 1 zu Sensor 2 fahren soll.


----------



## Werner29 (29 Oktober 2014)

Hallo omgitworks,

ich bin alles andere als nervös. Deine ich-schüttel-das-alles-aus-dem-Handgelenk-Attitüde provoziert mich halt.
Es gibt halt nur zwei Möglichkeiten: entweder du bist naiv oder ich ein Volldepp.

CODESYS ist nicht Open Source. Es stecken da schon ein paar Betriebsgeheimnisse drin. 

Warum nimmst du als IDE nicht Eclipse? 

BTW: plattformunabhängiger nativer Code? Muss ich das verstehen?


----------



## zotos (29 Oktober 2014)

A1.0 := M1.1;

Aber ich sehe DEIN Problem. Du willst es nicht lernen ;o)


----------



## Krumnix (29 Oktober 2014)

zotos schrieb:


> A1.0 := M1.1;
> 
> Aber ich sehe DEIN Problem. Du willst es nicht lernen ;o)



Nö, ich programmiere S7, C#, VB.Net und CODESYS mehrmals im Jahr. Aber warum muss ich denn ein neues, vielleicht genauso umständliches System einbringen, wenn das andere es genauso macht?

Ich versetze mich auch oft in den "normalen" Instandhalter. Dem kann ich mit 100% Sicherheit kein Hochsprachen-Programm vorlegen. 
1. Muss er dafür meist auch Englisch können und
2. Ist das Wissen und die Logik dahinter meist für die Leute schwer zu verstehen.

Ein grüner Strich, der irgendwann nicht mehr grün ist, kann diese Person besser verstehen, warum er nicht grün ist. Er schaut einfach solange den Strich an, bis die Unterbrechung "entdeckt" ist.
Versuch das dem guten Mann in SCL beizubringen.


----------



## zotos (29 Oktober 2014)

Krumnix schrieb:


> Nö, ich programmiere S7, C#, VB.Net und CODESYS mehrmals im Jahr....


Ach und warum hast Du dann ein solch schlechtes Beispiel gewählt?


----------



## omgitworks (29 Oktober 2014)

> Hallo omgitworks,
> 
> ich bin alles andere als nervös. Deine ich-schüttel-das-alles-aus-dem-Handgelenk-Attitüde provoziert mich halt.
> Es gibt halt nur zwei Möglichkeiten: entweder du bist naiv oder ich ein Volldepp.



Oder ich habe einfach einen anderen Background und schaffe es, auch über den Tellerrand zu schauen. Je nach Sichtweise sind einige Probleme größer oder kleiner. Ich schüttel auch nicht alles aus dem Handgelenk, sondern habe schon eine grobe Übersicht. Aber ich habe einfach nicht die zeitlichen Ressourcen alles bis ins Detail auszubreiten. Das habe ich ja bereits erwähnt.



> CODESYS ist nicht Open Source. Es stecken da schon ein paar Betriebsgeheimnisse drin.



Mit persönlich wäre das wichtig. Ich möchte kein Automatisierungssystem in meinen eigenen vier Wänden haben, dass (beabsichtigt oder nicht) nach Hause telefoniert. Das wäre schon ein K.O. Kriterium.



> Warum nimmst du als IDE nicht Eclipse?


 

Eclipse ist ganz toll, aber nicht so gut, dass es sich lohnen würde sich damit auseinanderzusetzen und eigene IDE darauf aufbauen zu wollen. Da bin ich mit Selbstbauen schneller - und das Ergebnis ist besser. Das ist natürlich nur meine Sicht der Dinge, aber ich kenne auch viele, die sie teilen. Wenn es geht, würde ich auf Java gern verzichten.



> BTW: plattformunabhängiger nativer Code? Muss ich das verstehen?



Wenn Du ein Entwickler bist, solltest du das verstehen. Falls nicht, dann bist du entschuldigt. Java bspw. ist ja nur plattformunabhängig, weil es eine Runtime gibt, die auf allen möglichen Systemen läuft. Ich verwende Qt, das ist großes, von vielen Embeddedfirmen unterstütztes Open Source Anwendungsframework. Der Code wird ohne das eigentlich Programm zu verändern direkt für die jeweilige Plattform kompiliert. Daher ist der Code plattformunabhängig, wird aber nativ ausgeführt.


----------



## Krumnix (29 Oktober 2014)

zotos schrieb:


> Ach und warum hast Du dann ein solch schlechtes Beispiel gewählt?



Was hat dein Beispiel denn direkt mit Hochsprache zu tun???
Nix. 

Während mein Beispiel aufzeigt, was Hochsprache im Endeffekt ist.

Ein A1.0 := M1.1 wird der Hochsprachenprogrammierer genauso wenig verstehen und ein "besseres" System selbst erstellen.

Und im übrigen bist du bei A1.0 := M1.1 wird runter auf Hardware-Ebene :roll:


----------



## zotos (29 Oktober 2014)

Es ist der entsprechende ST/SCL Code-Schnipsel zu Deinem AWL Beispiel. Was Dir eigentlich klar sein sollte.


----------



## Markus (29 Oktober 2014)

Krumnix schrieb:


> "Hochsprache":
> 
> ```
> if Intern_Speicher.Bereiche.1.1.lesen = true then
> ...



Was ist das für eine "Hochsprache" und aus welchem Jahrhundert ist die Entwicklungsumgebung wenn du das noch alles tippst?
Intellisense? Kennst du es?
Du tippst für dieses Resultat nicht wirklich mehr Zeichen händisch ein als in deinem AWL Beispiel.

Und ich hoffe jetzt einfach mal für dich das in deinem AWL Beispiel hinterher auch mehr als nur die Adresse im Editor steht.

Also ich kann Zotos nur zustimmen.
Ein schlechteres Beispiel um sich ein Eigentor zu Schießen hätte man kaum finden können...


----------



## weißnix_ (29 Oktober 2014)

Während Ihr euch über Darstellungen weiter streitet, werde ich jetzt mal ein Beispiel des TE abwarten *einschließlich* der Ankopplung von *gängiger* Hardware wie zum Bleistift Ethercat I/O-Modulen.
Dann kann das einfache:
	
	



```
a1.0:=e1.0;
```
 sicher auch hochsprachenmäßig verpackt mal Real ein Licht anknipsen.

Wenn das dann läuft werden wir alle wieder voller Vertrauen sein

Ein eingängiges Programmiersystem mit bequemer und fehlersicherer Hardwarekonfiguration wünschen wir uns doch schließlich alle irgendwie-oder?


Edit: @TE Ich hab gerade mal auf Deiner Blogseite nachgesehen. Du willst jetzt nicht wirklich *noch* ein komplettes Automatisierungssystem designen, oder?
Die Marktvielfalt hier wird da aber ein ernstzunehmender Gegner. Allein die gefühlt 5 Millionen I/O Module aller Couleur...
Ein (Soft-)SPSsystem in Form einer CPU, die ein oder zwei gängige Busprotokolle spricht halte ich für Herausforderung genug. Aber ich hab auch einen kleinen Geist


----------



## olliew (29 Oktober 2014)

weißnix_ schrieb:


> Ein eingängiges Programmiersystem mit bequemer und fehlersicherer Hardwarekonfiguration wünschen wir uns doch schließlich alle irgendwie-oder?



Mir persönlich kommt an erster Stelle ein 100% zuverlässige Hardware inklusive Laufzeitsystem. Dazu soll das dann auch in 5 bis 10 Jahre noch lieferbar sein.
Mit sub-optimale Programmiersysteme komme ich wesentlich besser zurecht als mit sub-optimale HW.

Aber gut, jeder Jeck is anders


----------



## omgitworks (29 Oktober 2014)

> Ich hab gerade mal auf Deiner Blogseite nachgesehen. Du willst jetzt nicht wirklich *noch ein komplettes Automatisierungssystem designen, oder?*



Eindeutige Antwort: Nein! An der Stelle beißt sich aber die Katze in den Schwanz: Ohne Hardware und aktive Nutzer wird es niemanden dazu bringen, selbst Hardware dafür zu entwickeln. Daher muss man sich ein Basissystem selbst bauen, selbst wenn es nur für rudimentäre Aufgaben geeignet ist. Gerade da benötige ich die meiste Hilfe. Wie das System letztendlich dann aussieht, liegt aber in der Hand seiner Nutzer. Die wählen ihre Hardware selbst, es gibt keinen Herstellerzwang. Zur Hardware sollen Baupläne mitgeliefert werden, sodass im Notfall auch ein Nachbau möglich sein soll.


----------



## Markus (29 Oktober 2014)

Wegen der Hardware:
Eventuell wäre es sinnvoll mal die Kollegen von http://www.mikrocontroller.net/forum auf diesen Thread aufmerksam zu machen bzw. im dortigen Forum nachzufragen.


----------



## rostiger Nagel (29 Oktober 2014)

rostiger Nagel schrieb:


> Vielleicht hilft es hier ein wenig zu lesen
> 
> http://mc.mikrocontroller.com/de/SPS-ctrl.php
> 
> ...





Markus schrieb:


> Wegen der Hardware:
> Eventuell wäre es sinnvoll mal die Kollegen von http://www.mikrocontroller.net/forum auf diesen Thread aufmerksam zu machen bzw. im dortigen Forum nachzufragen.



Habe ich doch in Beitrag #4 verlinkt, mit fertiger Lössung


----------



## Blockmove (29 Oktober 2014)

omgitworks schrieb:


> Eclipse ist ganz toll, aber nicht so gut, dass es sich lohnen würde sich damit auseinanderzusetzen und eigene IDE darauf aufbauen zu wollen. Da bin ich mit Selbstbauen schneller - und das Ergebnis ist besser.


Da bin ich mal gespannt ...
Eine vernünftige SPS-IDE steht einer üblichen Hochsprachen-IDE in Sachen Komplexität in nix nach.
Dazu noch so Dinge wie Online-Debugger, Online-Vergleich, Hardware-Konfiguration, Objektbrowser, Querverweis ...
Naja ... Schau mer mal wie schnell du bist


----------



## Blockmove (29 Oktober 2014)

weißnix_ schrieb:


> Ein (Soft-)SPSsystem in Form einer CPU, die ein oder zwei gängige Busprotokolle spricht halte ich für Herausforderung genug. Aber ich hab auch einen kleinen Geist



Dann zähle ich mich auch zu den Kleingeistern. Ich bin genau der selben Meinung 
Hardware gibt es genug und das in allen Preisklassen. Bussysteme und Schnittstellen genauso.
Je nach Zielgruppe kannst du dich hier bedienen.

Wenn du in Richtung Homeautomation willst, dann bring ein System mit KNX-und Modbus-Schnittstelle und webbasierter Visu für 250€ und dem Erfolg stht nix im Weg


----------



## Gerhard Bäurle (29 Oktober 2014)

Wenn ich die Diskussion hier lese, bin ich schon 
etwas enttäuscht.

Wäre in der Vergangenheit nie etwas "Unlösbares" in
Arbeit genommen worden, würden wir immer noch in 
Höhlen sitzen und hätten Angst vor dem kommenden 
Winter. 

Also: 

Pessimisten, haltet still. 
Optimisten, gebt Futter. 
Realisten ... gibt es nur im Märchen.


----------



## Werner29 (29 Oktober 2014)

omgitworks schrieb:


> Wenn Du ein Entwickler bist, solltest du das verstehen. Falls nicht, dann bist du entschuldigt. Java bspw. ist ja nur plattformunabhängig, weil es eine Runtime gibt, die auf allen möglichen Systemen läuft. Ich verwende Qt, das ist großes, von vielen Embeddedfirmen unterstütztes Open Source Anwendungsframework. Der Code wird ohne das eigentlich Programm zu verändern direkt für die jeweilige Plattform kompiliert. Daher ist der Code plattformunabhängig, wird aber nativ ausgeführt.



Ich bin Entwickler, ich kenne Qt und ich weiss was du meinst. Aber wenn einer schreibt mein Code ist plattformunabhängig weil nativ, dann muss man schon mal dumm nachfragen.
Qt ist erstmal nur eine C++ Klassenbibliothek, das schreibt dir nicht dein SPS-Programmiersystem.



omgitworks schrieb:


> Oder ich habe einfach einen anderen Background und schaffe es, auch über den Tellerrand zu schauen. Je nach Sichtweise sind einige Probleme größer oder kleiner.



Deinen Background kenne ich nicht. 

Ich habe den Background dessen, der seit 17 Jahren an ein bis zwei sehr erfolgreichen SPS-Programmiersystemen mitarbeitet,
und der die Probleme kennt. Mit CODESYS werden die anspruchsvollsten SPS-Programme geschrieben die es gibt.
Wenn mit deinem System mal eine Spritzgussmaschine oder eine Verpackungsmaschine programmiert wird, wenn die Zahnpasta mal in der Tube ist,
dann kennst du die Probleme.


----------



## rostiger Nagel (29 Oktober 2014)

Ganz egal, ich finde man sollte die und auch andere ähnliche Ideen, wie hier im Forum 
üblich, nicht von oben herab runtermachen. Lass ihn doch spielen, wenn es auch nicht 
den Maßstäben eines Codesys oder TIA genügt, niemand wird dümmer dabei. 

Im Gegenteil es kann eine intressante Diskussion dabei herauskommen.


----------



## Werner29 (29 Oktober 2014)

Gerhard Bäurle schrieb:


> Wäre in der Vergangenheit nie etwas "Unlösbares" in
> Arbeit genommen worden, würden wir immer noch in
> Höhlen sitzen und hätten Angst vor dem kommenden
> Winter.
> ...



Darum geht es mir nicht. Ich weiss ja, dass sowas funktionieren kann. Wir haben selbst mal bei 0 angefangen, und sind belächelt worden.
Aber so bisschen mehr Demut vor der Aufgabe stünde dem TE gut zu Gesicht.


----------



## weißnix_ (29 Oktober 2014)

> Aber so bisschen mehr Demut vor der Aufgabe stünde dem TE gut zu Gesicht.



Ich glaube, mit der Meinung stehst du nicht allein[emoji57] .

Dessen ungeachtet: Man waechst an den Aufgaben, die man sich stellt. Ich glaub schon, das der TE da was hinkriegt. Die Latte haengt allerdings sehr hoch.

send wia hendi


----------



## norustnotrust (29 Oktober 2014)

> Mit CODESYS werden die anspruchsvollsten SPS-Programme geschrieben die es gibt.


 ... so viel zu "Demut"


----------



## Werner29 (29 Oktober 2014)

rostiger Nagel schrieb:


> Ganz egal, ich finde man sollte die und auch andere ähnliche Ideen, wie hier im Forum
> üblich, nicht von oben herab runtermachen. Lass ihn doch spielen, wenn es auch nicht
> den Maßstäben eines Codesys oder TIA genügt, niemand wird dümmer dabei.
> 
> Im Gegenteil es kann eine intressante Diskussion dabei herauskommen.



Ist schon richtig, aber er hat angefangen. Er hat als erster von oben herab gemacht.


----------



## rostiger Nagel (29 Oktober 2014)

Ok dann werden wir jetzt mal alle sachlich und weiter geht es.


----------



## vierlagig (29 Oktober 2014)

Werner29 schrieb:


> Ist schon richtig, aber er hat angefangen. Er hat als erster von oben herab gemacht.



*ROFL* ... frau lehrerin, frau lehrerin, der hat angefangen ... 

verrücktes forum :roll:


----------



## schaible.r (29 Oktober 2014)

Also ich bin mir zwar nicht sicher ob der TE genug Ausdauer besitzt um das Projekt durch zu ziehen, aber ich drücken die Daumen und wünsche viel Erfolg.
Respekt für die Idee dazu und den Mut sowas zu Versuchen.
Ich hoffe ich bekomne mal die Möglichkeit das Fertige System (Auch gern im Beta) zu testen.

Gruß

René S.


----------



## omgitworks (30 Oktober 2014)

Hallo René,

ich hab auf cats-io.com jetzt einen Newsletter eingerichtet, bei "Meilensteinen" hau ich dann eine Mail raus und poste die hier auch im Forum. So können wir für später noch in Kontakt bleiben 

Den Sourcecode werd ich wohl auf github hochladen.

VG


----------



## zotos (30 Oktober 2014)

Vielleicht muss man ja auch nicht von NULL anfangen. Vor einigen Jahren wollte mal jemand hier im Forum sowas präsentieren, siehe Links.

http://www.sps-forum.de/sonstige-steuerungen/7775-softsps-fuer-windows-und-linux.html
http://www.sps-forum.de/werbung-und-produktneuheiten/7787-softsps.html


und hier scheint der aktuelle Stand zu sein (auch nicht mehr ganz frisch):  http://www.openmsr.org/index.php/de/


----------



## omgitworks (31 Oktober 2014)

Ich hab nun angefangen ein paar grundlegende Dinge aufzustellen (Architektur, Quellcode-Repository). In der nächsten Woche wird es keinen Fortschritt geben, da ich verhindert bin. Aber es kommen wenigstens ein paar Zahlen rum: die Zykluszeit im absoluten Leerlauf (Programm gibt nur true zurück) beträgt etwas weniger als 10us (5,6 und ein paar zerquetschte). Das ist dann also die untere Schranke für die Geschwindigkeit (auf einem i5-4200U muss man dazusagen). Auch die Hardwareabstraktion für die Netzwerkkommunikation steht. Als nächstes wird die Einbindung der GPIOs, sowie die Erweiterung der Runtime folgen, Programme über Ethernet entgegenzunehmen.

Wer des Englischen mächtig ist: http://www.cats-io.com/building-the-basic-architecture/

VG


----------



## omgitworks (1 November 2014)

So, heute hab ich das IDE-Projekt aufgesetzt, da ich gerne von Anfang an darüber Programme in die Steuerung laden würde. Wie gesagt, ich kann da auf andere Projekte zugreifen, in denen ich das schonmal umgesetzt hatte. Es fehlen noch wichtige Funktionen wie das Laden/Speichern von Dateien, das ist eben alles mühsame Tipparbeit. Außerdem muss die Kommunikationsschnittstelle für das Laden der Programme geschrieben werden. Es geht mir aber darum, einen ersten einfachen "Roundtrip" als Proof of concept zu haben.

Das gleiche mit Screenshot nochmal auf englisch: http://www.cats-io.com/the-cats-ide/

Außerdem ging noch einiges an Zeit für Dokumentation und Setup der Website drauf.


----------



## Thomas_v2.1 (1 November 2014)

Du fängst mit der IDE und dem Messen von Zykluszeiten an, obwohl es noch überhaupt kein Konzept gibt welche Hardware, welches unterlagerte System / Betriebssystem verwendet werden soll?

Dir ist aber schon klar was eine SPS ist, und was diese macht.


----------



## Blockmove (1 November 2014)

Ich bin mal gespannt in welche Richtung das Ganze läuft ...
Was mir bei deinem Beispielvideo aufgefallen ist, dass deine Sprache keine typisierten Variablen hat.
Vielleicht bin ich altmodisch, aber bei SPS-System sind mir persönlich Dinge wie Typsicherheit und Typüberprüfung wichtig.


----------



## omgitworks (1 November 2014)

@Thomas:
Das spielt keine Rolle, da die Software plattformunabhängig ist. Als ersten Versuch werde ich einen Raspberry Pi B+ mit Raspbian als OS nehmen.

@Blockmove:
Die Sprache ist JavaScript.


----------



## Thomas_v2.1 (1 November 2014)

Blockmove schrieb:


> Was mir bei deinem Beispielvideo aufgefallen ist, dass deine Sprache keine typisierten Variablen hat.
> Vielleicht bin ich altmodisch, aber bei SPS-System sind mir persönlich Dinge wie Typsicherheit und Typüberprüfung wichtig.


Da bin ich voll bei dir. Ich möchte alles was geht während des Übersetzungsvorganges überprüft haben. Wenn der Code in der Steuerung ist und das Problem erst dort auftritt, ist es zu spät.
Es gibt wohl eine Javascript-Erweiterung TypeScript von Microsoft, die statisch typisiert ist. Aber das will er nicht.

Mir sieht das ganze Projekt so aus als ob es in Richtung Hausautomatisierung geht.


----------



## Thomas_v2.1 (1 November 2014)

omgitworks schrieb:


> @Thomas:
> Das spielt keine Rolle, da die Software plattformunabhängig ist. Als ersten Versuch werde ich einen Raspberry Pi B+ mit Raspbian als OS nehmen.



Stimmt doch garnicht mit der Unabhängigkeit. Kann ich das auch auf einem 8-Bit AVR laufen lassen? Ohne Betriebssystem? Sieht mir nicht danach aus.


----------



## omgitworks (1 November 2014)

Programmierst du Anlagen mit 8-Bit AVRs? Kritik in allen Ehren, aber manchmal komme ich mir hier veräppelt vor..


----------



## Thomas_v2.1 (1 November 2014)

Viel Erfolg bei deinem Projekt.


----------



## Blockmove (2 November 2014)

Überlege dir das nochmal mit dem Verzicht von Typisierung. Spätestens beim Zugriff auf ext. Hardware wird es interessant.
Du hast in der Praxis 8, 16, 32 und 64Bit breite Zugriffe.
Das Ganze signed und unsigned und auch noch in little und big endian.


----------



## omgitworks (2 November 2014)

Der Gedanken von Open Source ist ja der, dass es nicht einen einzigen gibt, der dir zu sagen hat, wir du deine Programm zu schreiben hast. Ich habe mir TypeScript gerade angeschaut, es ist nichts anderes als ein JavaScript zu JavaScript-Übersetzer, und das sogar Open Source. Wenn dir das Feature wichtig ist, dann kannst du den Source Code nehmen und TypeScript als aktivierbare Erweiterung einbauen, oder du tust dich mit anderen zusammen, die deine Ansicht teilen, und lässt es jemanden machen. Aus Open Source Sicht erfüllt es jedenfalls Kriterien um aufgenommen zu werden,

Es ist eben nicht mehr so, dass big S oder irgendein anderer Hersteller daherkommt und euch vorschreibt, wie die Dinge sein müssen, und man sich dann darüber aufregen kann. Jetzt gilt die Devise: Es gefällt dir nicht? Dann ändere es ab. Und wenn deine Idee gut ist, dann wird sie sich auch durchsetzen (indem andere deine Änderung übernehmen). Natürlich kann man argumentieren, dass man nicht die Zeit hat, sich in den Sourcecode einzulesen. Aber wenn ich so beobachte, wie einige Leute sich aus Not heraus in closed-source Systeme regelrecht reinhacken (hab hier auch ein bisschen im Forum gestöbert), nur um die Dinge zu ändern, die ihnen beim täglichen Arbeiten auf den Keks gehen, dann denke ich mir schon: Vergebene Liebesmüh. Man beschäftigt sich unumgänglich mit der Software, und mit der Zeit lernt man auch mal die ein oder andere kleine Änderung zu machen. Das kommt ganz natürlich.

Deshalb habe ich auch github als Plattform für den Sourcecode gewählt. Dort kann sich jeder mit nur einem Klick eine vollständige Arbeitskopie erzeugen und sog. "Pull Requests" erzeugen , also Differenzen zwischen seiner Arbeitskopie und dem Hauptzweig als Verbesserungsvorschlag einreichen. Mit einem Klick können die Verbesserungen dann so in das Hauptprojekt mit einfließen, einfacher geht es nicht.


----------



## Thomas_v2.1 (2 November 2014)

Die Entscheidung zu einer Scriptsprache wie Javascript mit Garbage-Collector ist aber schon elementar. Daran lässt sich auch mit kleinen Erweiterungen nichts mehr ändern.

Es gibt sehr viel bestehenden Quellcode für die Automatisierung die auf der IEC-61131-3 basieren, auch als Opensource wie bei der Oscat-Bibliothek. Das alles ist mit deiner Umgebung nicht mehr nutzbar. Ich selber finde die IEC-61131 für Automatisierungstechnik adäquat, auch die grafischen Sprachen darin haben ihre Berechtigung. Meiner Meinung nach würde aber ST für den Low-Level-Krams, und CFC für die grafische Darstellung ausreichen. Es hat sich in den Jahren/Jahrzehnten als nicht völlig verkehrt erwiesen.


----------



## RobiHerb (2 November 2014)

Interessant aber ich denke, da wird die benötigte Zeit unterschätzt, die es braucht, um so ein System zum stabilen Endprodukt reifen zu lassen.

Ich selber habe mal eine SPS Entwicklungs Umgebung von MS-DOS auf .NET mit migriert und das hat Mann Jahre (insgesamt jetzt 6) benötigt, und da waren keine Anfänger am Werk.

Der Weg vom Proof of Concept bis zum Punkt, wo das Produkt zur SICHEREN Steuerung einer Anlage verwendet werden kann, ist weit.

Da ist mir der Ansatz RASP-PI + Codesys zur Haussteuerung eher sympathisch.


----------



## Blockmove (2 November 2014)

@Thomas,

es kommt viel auf den angestrebten Verwendungszweck an.
Der TE hat sein System nicht als SPS sondern als Automatisierungsystem bezeichnet.
Für den Bereich Homeautomation gibt es viele Systeme auf den unterschiedlichsten Plattformen und den unterschiedlichsten Programmiersprachen.
So gesehen stellt also dieses System nur eine weitere Variante dar.

Interessant wird es - für mich - bei der Anbindung von Hardware und der Visualisierung.
Irgendwelche "Bastellösungen" sind in diesem Bereich extrem wertmindernd für ein Haus.
Wenn du dich mit Maklern unterhälst, dann sind solche Häuser nahezu unverkäuflich.

Ein vernünftiges System muss also auf Standards aufsetzten und Schnittstellen zwischen den einzelnen Komponenten / Systemen schaffen.
Nachdem die Industrie bei der Standardisierung von Schnittstellen in diesem Bereich grandios versagt, müssen eben hier eigene Plattformen in die Bresche springen.
In jedem Auto für 15000€ steckt mehr Intelligenz als in einem Haus für 500.000€.

Gruß
Dieter


----------



## omgitworks (2 November 2014)

@RobiHerb:

Hier sind ebenfalls keine Anfänger am Werk. Zeitmindernd wirkt außerdem, dass das Projekt auf Schultern von Riesen steht, bildlich gesprochen. Ich rede nicht die Entwicklungen anderer Hersteller klein, was offenbar so rübergekommen ist. Sie hatten aber alle zu ihrer Zeit andere (schlechtere) Ausgangsbedingungen, ein nicht zu unterschätzender Faktor. Ein auf MS-DOS laufendes Projekt auf .NET ist - inbesondere von der Komplexität der Aufgaben her - auch ein ganz anderes Kaliber als eine Neuentwicklung mit Qt.

Ich hüte mich davor, das Projekt zu unterschätzen. Dazu gehört, dass ich hier keine Angaben über Details mache, die ich einfach nicht absehen kann. Vielmehr gehe ich schrittweise ran: Ich will im ersten Wurf ein Minimum an Funktionalität: Mit einer beliebigen Sprache ein Programm schreiben, in einer dafür vorgesehenen IDE, damit dann das Programm auf die Steuerung laden und ein paar Pins ansteuern, das vielleicht schon auf einer ersten Hardware. Dann sehen wir weiter.


----------



## Krumnix (3 November 2014)

Mich würde hierbei die Zielgruppe interessieren, die du anstrebst mit deinem Projekt?
In der Industrie wird das System nie verwendung finden. Keine Firma wird OpenSource in Anlagen verkaufen, die eine hohe Verfügbarkeit und Prozesssicherheit garantieren müssen.
Auch in der Haus-Automation sind solche Projekte nicht direkt Wertsteigernd. D.H. das potentielle Interessenten entwerden so fit sein müssen, das sie im Grunde das Ganze selbst
machen könnten oder das sie sich nicht an OpenSource rantrauen, weil, wie hier schon erwähnt, der Wiederverkauf des Hauses gefährdet wird.

Was mich aus interessieren würde, wie du im Moment vorhast die Stabilität deines späteren Ablaufprogramms zu gewährleisten?
Ich nehme mal Siemens als Ansatz:
Eine S7-1500er CPU kommt auf ca. 6-10ns pro Bit-Befehl, je nach Konfiguration. Diese Bearbeitung ist garantiert, und ist nicht von anderen Faktoren (BS, Interrupt...) abhängig.
Siemens hat ja auch eine SPS entwickelt, die auf normalen Rechner lauffähig ist. Win AC RTX. Hier gibt Siemens an, das ein Bit-Befehl bei 1ns liegt, wenn die RTX auf einer
Mikrobox 427D läuft. 

Was passiert bei deinem System, wenn das Haupt-BS abstürzt? Läuft dein System weiter? Wie kann ich das System anhalten, um den Rechner neu zu starten?
Ich nehme RTX wieder als Vorlage. Hier läuft der komplette SPS-Prozess alleine ab. Es wird sozusagen dem Haupt-BS ein Kern von der CPU geklaut, auf dem nur das SPS-Programm
läuft. Wenn das BS abstürzt, läuft die SPS weiter. Zugriff bekomme ich von Außen mit den Siemens-Tools und kann dann eine kontrollierte Abschaltung und einen Neustart ausführen.
Wie wird das bei dir gehändelt?

Legst du darauf überhaupt wert, oder ist dein Zielgebiet auf solche Funktionen nicht angewiesen?


----------



## zotos (3 November 2014)

Krumnix schrieb:


> Mich würde hierbei die Zielgruppe interessieren, die du anstrebst mit deinem Projekt?
> In der Industrie wird das System nie verwendung finden. Keine Firma wird OpenSource in Anlagen verkaufen, die eine hohe Verfügbarkeit und Prozesssicherheit garantieren müssen.
> ...



*ROFL*

Noch einer der die Software Lizenz-Bestimmungen von Siemens nicht liest.


----------



## Krumnix (3 November 2014)

zotos schrieb:


> *ROFL*
> 
> Noch einer der die Software Lizenz-Bestimmungen von Siemens nicht liest.



*ROFL*
*ROFL*
Naja, wenn du darauf bestehst, das Programm-Code für ZIP oder sonstige externen Tools, die für die Funktion der SPS keine Rolle spielen, dann verwendet Siemens auch OpenSource.
Für mich spielen diese Programm-Teile keine Rolle, da sie nicht für das Betreiben verantwortlich sind.


----------



## norustnotrust (3 November 2014)

Nunja, wie auch immer hier gewitzelt wird, die Frage der Haftung bleibt imho jedoch spannend bei einer OpenSourcePLC.


----------



## omgitworks (3 November 2014)

Open Source oder nicht bleibt wohl eine Glaubensfrage. Naja, selbst Planck wusste schon (war's Planck?): Die schlauen setzen sich nicht durch, sondern die dummen sterben aus. Also einfach abwarten und entspannen, die Zeit wird's richten.

@Krumnix:

Ich sehe du interessiert dich sehr für die Details. Meld dich doch beim Newlsetter auf der Seite an. Sobald es einen Meilenstein gibt, versende ich eine Nachricht. Darin werden dann auch solche Fragen beantwortet sein.

@norutnotrust

Ernst gemeinte Frage, da das tatsächlich ein Problem darstellen kann: Hast du schonmal erlebt, dass jemand SIEMENS (oder andere) haftbar gemacht hat, weil sie durch ihre SPS ein Schaden entstanden ist? Also ich meine nicht mal irgendwo gehört (die Leute erzählen viel, wenn der Tag lang ist), sondern selbst erlebt?


----------



## norustnotrust (3 November 2014)

omgitworks schrieb:


> Ernst gemeinte Frage, da das tatsächlich ein Problem darstellen kann: Hast du schonmal erlebt, dass jemand SIEMENS (oder andere) haftbar gemacht hat, weil sie durch ihre SPS ein Schaden entstanden ist? Also ich meine nicht mal irgendwo gehört (die Leute erzählen viel, wenn der Tag lang ist), sondern selbst erlebt?



Das dürfte auch nicht verwundern da davon auszugehen ist das in einem solchen Fall sicher ein Vergleich angestrebt und beiderseitiges Stillschweigen vereinbart würde. Nur, mal abgesehen von Folgeschäden und Produkthaftung, gibt es ja auch einfache Haftungsvarianten wie Gewährleistung und Garantie. Und will ich als Lieferant einer zig Mille schweren Anlage als zentralstes Element ein Teil haben für das ich selbst keinerlei Gewährleistung oder Garantie erwarten kann?

Des weiteren frage ich mich natürlich wie sieht es mit CE aus? Wie schaut es mit Investitionssicherheit aus?

Also wie in meinem ersten Post erwähnt ich finde das Thema spannend aber ich denke dass Prozessautomation eher kein Markt für eine OpenSourceSPS sein wird. Über andere Branchen kann ich nichts sagen.

Wie ich schon in meinem ersten Post erwähnt habe ist es meiner Meinung nach essenziell in einer frühen Phase des Projektes von "die Automation" als Zielbranche wegzukommen und auf einen Teil zu fokussieren. Die Anforderungen sind sonst zu breit und Argumente dafür und dagegen zu beliebig.


----------



## Gerhard Bäurle (3 November 2014)

Krumnix schrieb:


> Mich würde hierbei die Zielgruppe interessieren, die du anstrebst mit deinem Projekt?
> In der Industrie wird das System nie verwendung finden. Keine Firma wird OpenSource in Anlagen verkaufen, die eine hohe Verfügbarkeit und Prozesssicherheit garantieren müssen.



Warum soll sich OpenSource, hohe Verfügbarkeit und Prozesssicherheit ausschließen?

Bei OpenSource muss man im Fehlerfall nicht auf die Gnade des Herstellers warten ...



Krumnix schrieb:


> Auch in der Haus-Automation sind solche Projekte nicht direkt Wertsteigernd. D.H. das potentielle Interessenten entwerden so fit sein müssen, das sie im Grunde das Ganze selbstmachen könnten oder das sie sich nicht an OpenSource rantrauen, weil, wie hier schon erwähnt, der Wiederverkauf des Hauses gefährdet wird.



Das Problem ist nicht OpenSource, sondern die Bastelei an sich. 

Ich bin davon überzeugt, das sich auch manche S7- oder Wago-
Haussteuerung wertmindernd auswirkt.




Krumnix schrieb:


> Was mich aus interessieren würde, wie du im Moment vorhast die Stabilität deines späteren Ablaufprogramms zu gewährleisten?
> Ich nehme mal Siemens als Ansatz:
> Eine S7-1500er CPU kommt auf ca. 6-10ns pro Bit-Befehl, je nach Konfiguration. Diese Bearbeitung ist garantiert, und ist nicht von anderen Faktoren (BS, Interrupt...) abhängig.
> Siemens hat ja auch eine SPS entwickelt, die auf normalen Rechner lauffähig ist. Win AC RTX. Hier gibt Siemens an, das ein Bit-Befehl bei 1ns liegt, wenn die RTX auf einer Mikrobox 427D läuft.



Eine Highend-Maschine als Referenz nehmen ... wenn
ich ein Auto bauen will, dann schaue ich eher den Golf an
als einen 911er.


----------



## Gerhard Bäurle (3 November 2014)

norustnotrust schrieb:


> Das dürfte auch nicht verwundern da davon auszugehen ist das in einem solchen Fall sicher ein Vergleich angestrebt und beiderseitiges Stillschweigen vereinbart würde. Nur, mal abgesehen von Folgeschäden und Produkthaftung, gibt es ja auch einfache Haftungsvarianten wie Gewährleistung und Garantie. Und will ich als Lieferant einer zig Mille schweren Anlage als zentralstes Element ein Teil haben für das ich selbst keinerlei Gewährleistung oder Garantie erwarten kann?



Bei OpenSource hast Du Zugriff auf alles und bist 
deshalb auch selbst verantwortlich.

Ob das praktikabel ist, steht auf einem anderen Blatt.

Zudem neigt der Mensch dazu, lieber einen Schuldigen 
zu suchen statt ein Problem zu lösen. Das spricht gegen 
OpenSource.


----------



## bike (3 November 2014)

Da gebe ich Gerhard uneingeschränkt Recht.
Wer verlässt sich nicht auf Linux und Apache im Internet?
Wer weiß das wirklich (noch)?
Auch z.B. wireshark wird bei BigS verwendet.
Das sind auch Open Source Projekte und hat da jemand Probleme diese zu nutzen?


bike


----------



## rostiger Nagel (3 November 2014)

Selbst für Industrieanwendungen könnte ich es mir vorstellen zb kleine autarke Maschinen, 
wo neben einer Temperatur Regelung vielleicht noch das eine oder andere Bit verknüpft 
werden soll, das Ganze aber da wo ein Logo nicht eingesetzt werden soll oder sogar zu teuer 
ist.


----------



## zotos (3 November 2014)

Krumnix schrieb:


> *ROFL*
> *ROFL*
> Naja, wenn du darauf bestehst, das Programm-Code für ZIP oder sonstige externen Tools, die für die Funktion der SPS keine Rolle spielen, dann verwendet Siemens auch OpenSource.
> Für mich spielen diese Programm-Teile keine Rolle, da sie nicht für das Betreiben verantwortlich sind.


Du hast ja echt den Durchblick, kann ich bei Dir mal auf einen Kurs vorbeikommen? z.B. einige der CNC Komponenten aus dem Hause Siemens sind also unwichtige Tools die nicht für den Betrieb notwendig sind und die setzt auch keiner produktiv ein. [/Ironie]


----------



## norustnotrust (3 November 2014)

Also ich finde den Vergleich mit Linux und Apache etwas verkürzt dargestellt. Auch auf die Gefahr hin von der Opensource Comminity geschlachtet zu werden möchte ich meine Meinung dazu kundtun

1.) Was ist mit Linux? Damals, als ich meine erste Linux Distro auspackte (SUSE 3.0 glaub ich) sah die Welt der Betriebssysteme ca so aus: 96% Microsoft, 3% OS2 Warp, 1% Linux (Hab ich einfach mal aus dem Bauch heraus geschätzt )  Es gab also definitv ein Vakuum, einen Markt für ein Betriebssystem. Dieser wurde langsam erschlossen, was nicht zuletzt durch den Siegeszug des Internets sowie den Embedded Bereich beschleunigt wurde. Diese Situation sehe ich bei der SPS nicht. Wir werden es in ein paar Wochen wieder sehen aber es gibt 100erte Systeme in allen Varianten und Preisklassen. Des weiteren ist Linux zwar Opensource, wird aber von fianzstarken Unternehmen finanziert (http://de.wikipedia.org/wiki/Linux_Foundation) und das nicht aus Altruismus sondern schlicht und einfach weil es damals finanziell vorteilhaft war das MS-Monopol zu brechen und man jetzt die Entwicklung am Leben halten muss.

2.) Was ist mit Apache? Auch Apache wird tatkräftig von der Wirtschaft subventioniert (http://de.wikipedia.org/wiki/Apache_Software_Foundation). Warum? Ich kann nur raten aber vielleicht weil mir ein Linux ohne Webserver nichts bringt? Keine Ahnung aber ich bin sicher dass es die Marktlücke für Apache gegeben hat.

Was heißt das für mich? Große OpenSource-Projekte sind eine tolle Sache wenn es A.) einen Markt dafür gibt und B.) man es schafft (finazielle) Unterstützer dafür zu finden.

Ich sehe diesen Markt im Bereich der Prozessautomation nicht, weder ist der Kostendruck so groß (wie viel kostet eine SPS im Vergleich zu einer Anlage?) noch das Angebot der Systeme klein.

Und bitte versteht mich nicht falsch, ich will Opensource jetzt überhaupt nicht schlechtreden, mein Privatrechner ist voll davon. Aber wenn ich mal schnell in mein Startmenü am Firmenlappi schaue dann finde ich ausser Notepad++ keine freie Software (wahrscheinlich hab ich was übersehen aber das Gros ist sicher kommerziell). Opensource hat viele tolle Projekte hervorgebracht und ich bin dankbar für jede freie Zeile Code, die jemand hier teilt, oder die jemand in ein Projekt steckt, aber es ist nicht das Allheilmittel (siehe auch eine interessante Lektüre hier: http://www.juergen-ernst.de/download_swpat/studie_muenster4.pdf)

Also bleibe ich dabei: Ich halte dem Autor alle Daumen, verfolge es mit Interesse und erneuere trotzdem meinen Rat sich auf eine Branche (und die ist imho nicht die Prozessindustrie) zu fokussieren.

OT: Ich möchte auch noch einen OT Aspekt hier aufbringen. Es ist für mich auch interessant wie mit zweierlei Maß bezüglich Software gemessen wird. Bei TIA heißte es unisono "Ich brauch keine Spielereien, ich brauche Software die funktioniert" (auch von bike und RN), bei Opensource erwacht plötzlich irgendwie der Spieltrieb und man ist iumho bereit viel mehr in Kauf zu nehmen weil "es ja nichts kostet".


----------



## omgitworks (3 November 2014)

@norutnotrust:

Ich kann jede Meinung akzeptieren. Du hast deine sachlich dargestellt, also warum sollte dich jemand "schlachten" wollen?

Traurigerweise hast du in vielen Punkten sogar recht. Open Source wird weniger als Gemeinschaftsprojekt verstanden (so wie es ursprünglich gedacht war - und nicht anders), sondern als Entwicklungsstrategie mit Sparpotenzial. Das ist vollkommen absurd. Weder ist Open Source billiger, noch sicherer oder zwingend besser. Open Source ist eine Unabhängigkeitsfrage. Wer in Open Source investiert, investiert in Unabhängigkeit.

Wirtschaftlich gesehen ist Unabhängigkeit auch ein Stück Sicherheit, aber auch Verantwortung. Wer sich abhängig macht, tritt Verantwortung ab. Ist das schlecht? Kommt drauf an. Wie so vieles im Leben ist nicht alles schwarz oder weiß.


----------



## Zottel (3 November 2014)

norustnotrust schrieb:


> ...OT: Ich möchte auch noch einen OT Aspekt hier aufbringen. Es ist für mich auch interessant wie mit zweierlei Maß bezüglich Software gemessen wird. Bei TIA heißte es unisono "Ich brauch keine Spielereien, ich brauche Software die funktioniert" (auch von bike und RN), bei Opensource erwacht plötzlich irgendwie der Spieltrieb und man ist iumho bereit viel mehr in Kauf zu nehmen weil "es ja nichts kostet".


Es kommt darauf an, ob die Spielerei nur auch drin ist, oder zwangsweise immer ausgeführt wird, wie der häufige online/offline-Vergleich in TIA. Wäre TIA open source hätte ich das halt längst ausgebaut...


----------



## LowLevelMahn (4 November 2014)

*Kindergarten...*



> 1.) Was ist mit Linux? Damals, als ich meine erste Linux Distro auspackte (SUSE 3.0 glaub ich) sah die Welt der Betriebssysteme ca so aus: 96% Microsoft, 3% OS2 Warp, 1% Linux (Hab ich einfach mal aus dem Bauch heraus geschätzt :wink:) Es gab also definitv ein Vakuum, einen Markt für ein Betriebssystem. Dieser wurde langsam erschlossen, was nicht zuletzt durch den Siegeszug des Internets sowie den Embedded Bereich beschleunigt wurde. Diese Situation sehe ich bei der SPS nicht. Wir werden es in ein paar Wochen wieder sehen aber es gibt 100erte Systeme in allen Varianten und Preisklassen. Des weiteren ist Linux zwar Opensource, wird aber von fianzstarken Unternehmen finanziert (http://de.wikipedia.org/wiki/Linux_Foundation) und das nicht aus Altruismus sondern schlicht und einfach weil es damals finanziell vorteilhaft war das MS-Monopol zu brechen und man jetzt die Entwicklung am Leben halten muss.
> 
> 2.) Was ist mit Apache? Auch Apache wird tatkräftig von der Wirtschaft subventioniert (http://de.wikipedia.org/wiki/Apache_Software_Foundation). Warum? Ich kann nur raten aber vielleicht weil mir ein Linux ohne Webserver nichts bringt? Keine Ahnung aber ich bin sicher dass es die Marktlücke für Apache gegeben hat.



soviel Unwissen ist schon sehr schmerzhaft

-"Linux/Apache" werden nicht nur von Ihren Foundations unterstüzt sondern auch von tausenden Entwickler die für Ihre Firmen an/unter Linux entwickeln
die Menge übersteigt bei weitem die Anzahl an Entwickler die Microsoft oder Siemens (für Ihre gesamten Produktsparten) vorhalten -> einfach mal die Kernel-Stats anschauen

-die größten Open-Souce Projekten Linux, Apache usw. wird regelmäßig von den Coverity-Leuten eine sehr hohe (Linux-Kernel die höchste) Qualität bescheinigt - und
JA die arbeiten auch für die Top-500 der Kommerziellen Unternehmen (nur die Zahlen der kommerziellen werden nicht veröffentlich - aber die Fehler/per Line Aussage zum Linux-Kernel ist schon erschreckend gut)

-Linux ist das dominierend Betriebssystem im mitteleren Embedded-Bereich und Server-Markt, nicht zu vergessen fast alle
Super-Computer in der Top-500-Liste (über 97%), der Linux/Apache betreibt den Grossteil des Internets

-"Chrome/Firefox" sind die dominierenden Browser (ja es gibt auch noch viele Hardcode-IExplorer-Jünger da draussen)

-"Android" als das (fast) stärkste Handy-OS ist(basiert) auf Linux und Google strebt schon länge die Re-Integration in den Vanilla-Kernel an - ich hab ein Blackberry 

-Google und Facebook, Amazon, YouTube usw. basieren fast gänzlich auf Linux/Open-Source - mitunter also die größte Datenverteiler der Erde  - JA da laufen
sehr wenige Web-Server, SQL-Server oder DBs von anderen Herstellern

-United Internet aka web.de, gmx.de etc. machen auch alles mit Linux

-die neuen C/C++ Kompiler von ARM(die dominierende Embedded-Platform im Konsumer-Bereich) und Intel basieren in Zukunft auf dem "LLVM/Clang"-Projekt

-der Playstation 4 Kompiler basiert auf "LLVM/Clang"

-die Siemens-NCK 840D SL basiert auf Linux und der Code wird mit dem "GCC" kompiliert, das HMI Operate basiert auf "QT" - alles OpenSource

-ausser den Apple-Produkten (aber selbst die basieren auf dem Open-Source-"NetBSD"-Kernel), laufen so gnadenlos viele System auf Linux- und anderer Open-Source-Basis das ein fiktives wegfallen des/der Systeme zu einer Art Blackout auf der Welt führen würde

die Liste kann man immer Länger werden lassen und wird schlussendlich jeden irgendwie bedeutend tangieren

OpenSource/Linux/etc. ist einfach nicht die Erfahrung die manche mit der Installation von Suse oder Ubuntu gemacht haben - die Qualität des Dateibrowsers oder Text-Editors
oder sonstigem Desktop-Tools, Spiel, etc. ist zu 150% kein Mittel um zu beurteilen ob etwas gut ist - ein nacktes Linux ist etwas völlig anderes als das was Suse, Ubuntu, usw. daraus machen
noch dazu gibts es dann noch viele andere OpenSource System z.B. FreeRTOS, etc. die dann den Rest des Embedded Marktes unter sich aufteilen

und Milliarden-Umsatz-Unternehmen wie google, Amazon, Facebook, etc. nutzen nicht einfach nur Linux - grosse Teile der Firmenstrategien basieren darauf weil andere System einfach
den Durchsatz nicht schaffen (nur ein unmündiges Kind kann denken das diese Terabyte-Schleudern nicht die größten IT/Software-Herausforderungen sind die es so gibt), 
keines dieser Unternehmen wirft Geld aus dem Fenster nur weil ein paar Geeks in der IT-Abteilung gern mal Linux auf dem Mega-Watt-Rechenzentrum haben wollen - so
dumm ist kein Unternehmen der Welt

ich nutzen Linux nur manchmal beruflich als Entwicklungsplatform - sonst Windows, aber ich laufen nicht mit geschlossenen Augen durch die Welt die uns Umgibt


----------



## zotos (4 November 2014)

LowLevelMahn schrieb:


> ...
> -die Siemens-NCK 840D SL basiert auf Linux
> ...



Nein das kann nicht sein!



Krumnix schrieb:


> ...
> Keine Firma wird OpenSource in Anlagen verkaufen, die eine hohe Verfügbarkeit und Prozesssicherheit garantieren müssen.
> ...


----------



## LowLevelMahn (4 November 2014)

> Nein das kann nicht sein!



Ich zerstöre so ungern die Closed-Source-Träume andere

https://www.click4business-supplies.com/resources/articles/e20001-a1490-p610.pdf



> Die „gehärtete“ NC-Software der SINUMERIK 840D sl
> basiert auf Embedded-LINUX



und ich hab die Info auch direkt mal von einem Siemens-Entwickler bekommen

@Zottel


> Es kommt darauf an, ob die Spielerei nur auch drin ist, oder zwangsweise immer ausgeführt wird, wie der häufige online/offline-Vergleich in TIA.
> Wäre TIA open source hätte ich das halt längst ausgebaut...



Ich auch


----------



## Gerhard Bäurle (4 November 2014)

LowLevelMahn schrieb:


> Ich zerstöre so ungern die Close-Source-Träume andere
> 
> https://www.click4business-supplies.com/resources/articles/e20001-a1490-p610.pdf



Zum Beitrag von zotos

http://www.sps-forum.de/stammtisch/73519-neuentwicklung-automatisierungsplattform-11.html#post511788

musst Du Dir noch ein Ironie-Smiley denken ...


----------



## Werner29 (4 November 2014)

Für dieses Projekt ist Open Source Voraussetzung, das braucht man nicht diskutieren, da ist auch nichts Schlechtes dran. 
Die Frage ist doch ob das vorgestellte Konzept (von dem mir vieles noch unklar ist), taugt für eine "richtig gute SPS".

Was sind die Minimalvoraussetzungen für die Runtime? Es gibt einen sehr grossen Markt von Kleinsteuerungen, 512 KB RAM oder
256 KB RAM, das Programm läuft im Flash, rudimentäres Betriebssystem. So sehen kleine Steuerungen aus, und grosse Steuerungen
haben einen Feldbusanschluss. Dann musst du dir darüber Gedanken machen.

Eine Skriptsprache auf einer SPS ist schon sehr gewagt. Typischerweise findet man Fehler damit erst zur Laufzeit. Bei einer SPS
will man möglichst die Fehler zur Compilezeit haben, zum Beispiel auch out of memory oder stack overflow.
Deswegen gibt es keine dynamische Speicherallokation sondern nur statische Speicherallokation. Es gibt schon Gründe, warum SPSen anders 
programmiert werden als ein PC.

Wie legt man Variablen in den NVRAM (gibts auf praktisch jeder SPS), Stichwort RETAIN?

Kann man bei laufendem Programm überhaupt Werte beobachten? (Monitoring, bzw. Ablaufkontrolle)

Kann man ein laufendes Programm ändern, ohne in Stop zu gehen und ohne die Echtzeit zu verletzen? (Online Change)

Das sind einige Probleme die man lösen muss, wenn man von einer SPS redet. Das muss das Konzept bereits hergeben. Es geht nicht darum, 
dass du das jetzt schon im Detail ausgearbeitet haben musst, aber kann das überhaupt funktionieren?


----------



## Krumnix (4 November 2014)

zotos schrieb:


> Nein das kann nicht sein!



Ähm, habe ich was verpasst???
Ich wusste garnicht, das wir uns hier über CNC und Umrichter unterhalten. Ich dachte, es geht um SPS?! Einer Hardware-SPS, die der TE selbst entwickeln will!
Und diese läuft bei Siemens aktuell nicht OpenSource. Wenn Siemens oder andere Hersteller dies einbinden, liegt aber die Gewährleistung bei denen.
Darum geht es mir hier einfach. 
Das hier dann von einer Person dieser Kindergarten kommen muss, bleibt mir leider schleierhaft.
Ich werde als Verantwortlicher für die Programmierung keine OpenSource einsetzen, die nicht von einem Komplettanbieter "gehärtet" wurde.
Wie hier schon mehrmals erwähnt wurde, ist die Sache mit CE,TÜV,Garantie,Gewährleistung,Schadenansprüche bei Einsatz von OpenSource nicht
geklärt.

Daher war auch schon öfters meine Frage, welche Zielgruppe der TE ansprechen will. 

Ich klinke mich hier aus, weil ich weiß, dass in ein paar Wochen nix mehr zu hören ist.
Trotz dem "...." wünsche ich natürlich dem TE viel Erfolg!


----------



## norustnotrust (4 November 2014)

Siehst du omgitworks, das habe ich gemeint. OpenSource ist für viele so etwas wie eine Religion, eine kritische Auseinandersetzung ist leider nur sehr schwer möglich. Man "glaubt" halt und da spielt es auch keine Rolle was der andere gesagt hat, sobald es nur im Ansatz kritisch ist, ist es Blasphemie und wird mit einer Predigt bis auf Blut bekämpft.

Die Predigen folgen auch immer einer festgelegten Dramaturgie, der Liturgie des einzig wahren Codes.

Teil 1 der Predigt ist die so genannte "Verunglimpfung"



LowLevelMahn schrieb:


> soviel Unwissen ist schon sehr schmerzhaft



Teil 2 ist das so genannte "Glaubensbekenntnis"



LowLevelMahn schrieb:


> -"Linux/Apache" werden nicht nur von Ihren Foundations unterstüzt sondern auch von tausenden Entwickler die für Ihre Firmen an/unter Linux entwickeln
> die Menge übersteigt bei weitem die Anzahl an Entwickler die Microsoft oder Siemens (für Ihre gesamten Produktsparten) vorhalten -> einfach mal die Kernel-Stats anschauen


Ich sage dazu nur: http://www.computerweekly.com/blogs...rnel-development-done-by-paid-developers.html

Teil 3 ist die "Huldigung"

Die hat mit dem eigentlichen Post auf das sich die Predigt bezieht eh nichts mehr zu tun bzw. unterstreicht oftmals sogar Aussagen desselben. Es geht dabei auch nicht um eine Diskussion sondern einfach darum dass OpenSource das "Beste" und "Reinste" und "Wahrste" ist. Es geht darum wer nicht alles mit Linux arbeitet (habe ich das angezweifelt?), wie wichtig Opensource für große Unternehmen ist (habe ich das nicht genau so erwähnt?), das Linux nichts für "Geeks" ist sondern für die ganze Welt (habe ich das behauptet?), wie viele kommerzielle Projekte auf OpenSource basieren (Wo habe ich etwas anderes behauptet) usw... Es geht einfach darum wirr alles zusammenzutragen was super und toll an Opensource ist.



LowLevelMahn schrieb:


> -die größten Open-Souce Projekten Linux, Apache usw. wird regelmäßig von den Coverity-Leuten eine sehr hohe (Linux-Kernel die höchste) Qualität bescheinigt - und
> JA die arbeiten auch für die Top-500 der Kommerziellen Unternehmen (nur die Zahlen der kommerziellen werden nicht veröffentlich - aber die Fehler/per Line Aussage zum Linux-Kernel ist schon erschreckend gut)
> 
> -Linux ist das dominierend Betriebssystem im mitteleren Embedded-Bereich und Server-Markt, nicht zu vergessen fast alle
> ...



Teil 4 Und wo bei anderen das "Amen" ist kommt bei den Opensource-Predigern die eigene "Erhöhung" über die anderen


LowLevelMahn schrieb:


> , aber ich laufen nicht mit geschlossenen Augen durch die Welt die uns Umgibt



Deshalb meine Bedenken zu dem Thema was zu schreiben die sich wieder mal zu 100% bewahrheitet haben. Man kann halt über Religion nicht verhandeln, man glaubt oder man glaubt halt nicht...


----------



## LowLevelMahn (4 November 2014)

@norustnotrust

die Worte "Kindergarten" und "schmerzhaft" waren zu harsch - sorry

ich nutze Linux und Open-Source nur für Online-Banking und hin und wieder ein Entwicklungsprojekt das z.B. unter Linux läuft
sonst ist mir Open- Closed Source relativ egal, ich mag sowiso nur gut funktionierende Kompiler für meinen eigenen Code 

Deine Kommentare zu Linux/OpenSource "hörten" sich nur so weltfremd an



> Altruismus sondern schlicht und einfach weil es damals finanziell vorteilhaft war das MS-Monopol
> zu brechen und man jetzt die Entwicklung am Leben halten muss





> Ich kann nur raten aber vielleicht weil mir ein Linux ohne Webserver nichts bringt?



möglicherweise habe ich dich auch nur völlig falsch verstanden - aber
die Liste von mir die ich hier (unnötigerweise - sorry @Krumnix) eingestreut habe inhaltlich falsch?

Es sollte kein "OpenSource = Immer Geil" sonder eher "OpenSource ist auch sehr gut" vermitteln
- sonst nichts

@omgitworks

du must einfach nur klar machen das du keine Hardware-SPS mit TÜV-Prüfung bauen
willst - eher so eine Leit/Steuersoftware + Hardwarebasis
und schon hören die Leute auf dir mit Echtzeit oder Sicherheitsanforderungen zu kommen
wie die Leute darauf kommen das du Echtzeit-Anforderung einer SPS erfüllen möchtest/könntest
ist mir auf Basis deines Vorgestellten Konzeptes schleierhaft und ich denke auch nicht das
deine Gedanken wirklich in die Richtung gehen


----------



## norustnotrust (4 November 2014)

@Lowlevelmahn: Drücke ich mir wirklich so wirr aus? Ich habe doch nur 3 einfache Meinungen kundgetan:

1.) OpenSource ist toll

2.)  Ich glaube dass die Vorstellung dass sich 1000ende Entwickler am Abend  hinsetzen und in Ihrer Freizeit super Systeme entwickeln romantisch  verzerrt ist. Die erfolgreichsten Opensource Projekte entstehen imho  indem sie von von Konzernen gelenkt und unterstützt werden. Diese  Konzerne wiederum ersparen sich Milliarden von Entwicklungskosten da sie  den Erfolg untereinander sharen und von der Community profitieren. 

3.) Opensource ist auch nur dann erfolgreich wenn es einen Markt für das Produkt gibt.



LowLevelMahn schrieb:


> aber
> die Liste von mir die ich hier (unnötigerweise - sorry @Krumnix)  eingestreut habe inhaltlich falsch?


- Wieso hat das irgendwer  behauptet? Sie hat imho nur keinen Bezug auf mein Post das zu zitiert  hast



LowLevelMahn schrieb:


> Es sollte kein "OpenSource = Immer Geil" sonder eher "OpenSource ist auch sehr gut" vermitteln
> - sonst nichts


 - Bezeichnet irgendwer hier Opensource als nicht "[...]auch sehr gut"?


----------



## LowLevelMahn (4 November 2014)

> Drücke ich mir wirklich so wirr aus



schon - die von mir gequoteten Kommentare von dir haben mein Post verursacht sonst nichts



> Bezeichnet irgendwer hier Opensource als nicht "[...]auch sehr gut"?



hier gibt es schon einige die denken das Closed Source Software + Große Firma = Qualität bedeutet und den (möglichen) Vorteil 
von OpenSource für die Automatonswelt nicht sehen - aber das ist hier alles eh Off-Topic

btw: du solltest auch nicht gleich mit Religion kommen wenn einer mal ein paar Fakten, ohne jegliche Glorifizierung schreibt (oder deine Glorifikations-Erkennungsbrille putzen)


----------



## erzteufele (4 November 2014)

ihr könnt euch auch nachrichten schreiben


----------



## norustnotrust (4 November 2014)

@Lowlevelmahn Ich lass mal stecken.... es gibt nämlich nichts was ich dazu sagen könnte ohne mich zum dritten Mal zu wiederholen.


----------



## omgitworks (4 November 2014)

Ich möchte hier keinen Glaubenskrieg ausfechten. Stattdessen wäre es doch besser die Energie anstatt sie hier in wildes Gegenargumentieren im Sande verlaufen zu lassen, doch mal konstruktiv und geordnet zu nutzen. Wenn ich die emotionalen Bestandteile herauslasse, dann finde ich auf beiden Seiten berechtigte Einwände. Bei einem Haufen erwachsener Menschen muss es doch möglich sein sich an einen Tisch zu setzen und die Probleme real anzugehen.

@Bernd:


> Für dieses Projekt ist Open Source Voraussetzung, das braucht man nicht diskutieren, da ist auch nichts Schlechtes dran.
> Die Frage ist doch ob das vorgestellte Konzept (von dem mir vieles noch unklar ist), taugt für eine "richtig gute SPS".



Sagen wir mal so: Der Code ist so gestaltet (und soll so bleiben), dass vieles oft ausgetauscht werden kann. Wenn man an einen Punkt kommt, an dem man feststellt, was das eigentliche Problem ist, überarbeitet man genau diesen Teil.



> Was sind die Minimalvoraussetzungen für die Runtime? Es gibt einen sehr grossen Markt von Kleinsteuerungen, 512 KB RAM oder
> 256 KB RAM, das Programm läuft im Flash, rudimentäres Betriebssystem. So sehen kleine Steuerungen aus, und grosse Steuerungen
> haben einen Feldbusanschluss. Dann musst du dir darüber Gedanken machen.



Ein Raspberry Pi, der ein vollständiges Betriebssystem fassen kann, 512MB RAM, Gigabytes an Flashspeicher, Ethernet mit dabei, kostet zur Zeit 30 Euro (Open Hardware, "Nachbauten" kosten deutlich weniger). Wenn das Projekt hier soweit ist, dass man es mal benutzen kann, liegt der Preis niedriger. Als Feldbus soll Ethernet mit einem Sicherheitslayer dienen. Ich rechne also mit der Hardware in 1-2 Jahren, obwohl < 30 Euro also Steuereinheit ja jetzt schon sehr günstig ist. Es gibt also eigentlich keinen wirtschaftlichen Anreiz, schwächere Systeme zu unterstützen.



> Eine Skriptsprache auf einer SPS ist schon sehr gewagt. Typischerweise findet man Fehler damit erst zur Laufzeit. Bei einer SPS
> will man möglichst die Fehler zur Compilezeit haben, zum Beispiel auch out of memory oder stack overflow.
> Deswegen gibt es keine dynamische Speicherallokation sondern nur statische Speicherallokation. Es gibt schon Gründe, warum SPSen anders
> programmiert werden als ein PC.



Die ganze Frage "Skriptsprache ja/nein?" kommt ja erstmal nur auf den Tisch, weil man mit der Einstellung kommt, dass eine Skriptsprache irgendwie nicht taugt oder gefährlich ist. Dabei wäre es interessant zu sehen, inwiefern sich das in der Praxis tatsächlich negativ auswirkt. Eventuell nicht so sehr, wie man immer annahm, oder man "härtet" an entsprechenden Stellen nach. Ich habe mit QtScript ja die Möglichkeit, die Javascript-Engine in ihrem Verhalten zu modifizieren.



> Wie legt man Variablen in den NVRAM (gibts auf praktisch jeder SPS), Stichwort RETAIN?


Siehe Frage davor. Das ist eine Implementierungsfrage.



> Kann man bei laufendem Programm überhaupt Werte beobachten? (Monitoring, bzw. Ablaufkontrolle)


Daran sitze ich gerade. Deshalb die IDE.Muss implementiert werden, dann geht es.



> Kann man ein laufendes Programm ändern, ohne in Stop zu gehen und ohne die Echtzeit zu verletzen? (Online Change)


Das geht bereits jetzt.



> Das sind einige Probleme die man lösen muss, wenn man von einer SPS redet. Das muss das Konzept bereits hergeben. Es geht nicht darum,
> dass du das jetzt schon im Detail ausgearbeitet haben musst, aber kann das überhaupt funktionieren?


Ja, da bin ich mir sehr, sehr sicher. Ich kann dir wirklich nicht sagen, ob ich irgendwelche Specs anderer Hersteller toppen kann, dafür ist das einfach zu diffus. Niemand könnte das jetzt absehen, das wäre völlig unseriös. Aber an der grundsätzlichen Machbarkeit habe ich nicht den geringsten Zweifel.


----------



## bike (4 November 2014)

Seltsam, dass der Threat sich so entwickelt.
Der TE hat eine Idee, die er diskutieren will /wollte.
Macht es nicht SInn, auch einmal ausserhalb der "Normen" zu denken?

Wenn ich langsam die Rente erreiche, dann werde ich meine Aktivitäten bei den verschiedenen open Source Projekten verstärken.

@NRNT: mir dir würde gern das Thema Anlagenautomatision und Open Source und soziale Verantwortung und gesellschaftliches Interesse diskutieren. Bei einem Bier oder einem guten Wein.
Denn entweder lese ich falsch oder du schreibst manchesmal seltsam und nicht ganz schlüssig.

@TE: wenn du noch Unterstützung brauchst, melde dich

Servus

bike


----------



## LowLevelMahn (4 November 2014)

> > Kann man ein laufendes Programm ändern, ohne in Stop zu gehen und ohne die Echtzeit zu verletzen? (Online Change)
> 
> 
> Das geht bereits jetzt.




Hilft dir da irgendwie die Script-Engine oder wie hast du das realisiert - oder gibts hier nur Verständnisprobleme 
für wen "Online Change" welche Bedeutung hat?



> Scriptsprache ja/nein...inwiefern sich das in der Praxis tatsächlich negativ auswirkt



kommt drauf an was gesteuert wird - bei eine Motoren/Achsen-Party kann "negativ" schon sehr negativ sein
aber wenn das nicht deine Zielgruppe ist könnte es schon ein wenig egal sein


----------



## omgitworks (4 November 2014)

Du kannst im Programm auf einen sog. Ausführungskontext zugreifen. Diesen kann man auslesen und ablegen, oder manipulieren. Wenn ich richtig verstanden habe, ist damit gemeint, dass ich z.B. um jetzt mal in SIEMENS-Sprech zu bleiben, einen Merker ändern an ohne das eigentliche Programm anzuhalten. Man kann eigentlich sogar mehr: Es ist möglich, ganzen Code ablaufen zu lassen (zu "injizieren"), der garnicht auf der Steuerung ist. Das zyklisch ausgeführte Programm wird aus Performancegründen vorkompiliert vorgehalten, das Kompilieren unterbricht aber nicht den zyklischen Ablauf.


----------



## norustnotrust (4 November 2014)

Online Change ist die Möglichkeit das Programm (meist im eingeschränktem Masse) während des Betriebes zu ändern. Wobei mal ehrlicherweise sagen muß es gibt genug Systeme am Markt die das nicht können und trotzdem leben.


----------



## omgitworks (6 November 2014)

Ich wollte nur ein kleines Statusupdate durchgeben. Das klingt jetzt unspektakulär, aber das Übertragen von Dateien auf die Steuerung funktioniert jetzt (über den gleichen Kanal, über den auch die restliche Kommunikation erfolgt, beliebig viele parallel und zustandslos). Als Nebenprodukt ist ein kleines Tool entstanden, mit dem ich direkt über TCP mit der Steuerung reden kann (auf Protokollebene). Kleines Screenvideo dazu gibts hier: http://www.cats-io.com/uploading-code-into-the-control/

edit:
Bin mir nicht sicher, ob das erwähnt wurde, aber die IDE hat auch Fortschritte gemacht, man kann mehrere Dateien bearbeiten und sich ebenfalls auf die Steuerung aufschalten.


----------



## KingHelmer (7 November 2014)

Hi OMG,

das Video lädt bei mir leider nicht 

Grüße, 
Flo


----------



## omgitworks (7 November 2014)

Hey Flo,

welchen Browser hast du?


----------



## RobiHerb (7 November 2014)

*Firefox*



omgitworks schrieb:


> Hey Flo,
> 
> welchen Browser hast du?



Bei mir auch kein Video zu sehen, Browser Firefox aktuelle Version auf Windows 7 System.


----------



## rostiger Nagel (7 November 2014)

keine Funktion Win7 mit IE, na höfentlich läuft die Endwickelte Software besser


----------



## Blockmove (7 November 2014)

Mit Firefox geht es nicht, mit Chrome klappts


----------



## vierlagig (7 November 2014)

mit chrome geht es ... ist aber nicht so spektakulär, dass man sich ein bein ausreißen muss dafür


----------



## Blockmove (7 November 2014)

rostiger Nagel schrieb:


> keine Funktion Win7 mit IE, na höfentlich läuft die Endwickelte Software besser



Fängt die "Klemmen-Mafia" in OWL schon das Zittern vor der aufkommenden Konkurrenz an? 

@omgitworks:
Wie stellst du dir eigentlich die Hardware-Anbindung vor?
Hast du dir schon Gedanken über Prozessabbild, Adressierung, Speicherbereiche u.ä. gemacht?

Gruß
Dieter


----------



## Zottel (8 November 2014)

omgitworks schrieb:


> Dabei wäre es interessant zu sehen, inwiefern sich das in der Praxis tatsächlich negativ auswirkt. Eventuell nicht so sehr, wie man immer annahm, oder man "härtet" an entsprechenden Stellen nach. Ich habe mit QtScript ja die Möglichkeit, die Javascript-Engine in ihrem Verhalten zu modifizieren.


Habe jetzt kein Javascript zur Hand, aber ich vermute, das es in allen interpretierten Sprachen ähnlich ist. Hier ein Beispiel in Python:

```
def main:
  for i in range (1,100):
     if i==57 flipAus()
  print i
```
läuft von 1 bis 56 und merkt dann, dass es das Unterprogramm flipAus gar nicht gibt.
Soll heißen, der Interpreter prüft hier grundlegende Voraussetzungen der Ausführung erst, wenn die Ausführung tatsächlich ansteht.
Kannst du die Javascript-Engine veranlassen, alle möglichen Ausführungspfade "abzuschreiten", um deren Korrektheit zu prüfen?
Wenn ja: Und was ist mit eval()?


----------



## omgitworks (8 November 2014)

Ja, man könnte alle Wege vorher ablaufen und bereits im Editor anzeigen, dass eine bestimmte Funktion/Variable nicht existiert. Wobei es sehr unwahrscheinlich ist, sich da zu vertun, weil der Editor sobald man "f" eingibt, die Funktion flipAus nicht vorschlägt. Dadurch weiß man als Programmierer schon beim Tippen: Die Funktion gibt es garnicht. Syntaxfehler werden schon vorher gecheckt, ein Programm mit Syntaxfehlern (also z.B. vergessene Klammer) wird garnicht erst in die Steuerung geladen.

eval() kann man abstellen.

Man kann übrigens auch mit bestehenden SIEMENS Systemen viel Unfug treiben und Fehler auslösen, die erst zur Laufzeit entstehen. Der Unterschied ist nur, dass einem die IDE nicht dabei hilft, diese Fehler anzuzeigen.. Der Vorteil mit JavaScript ist aber auch: Es ist keine "Insellösung" in der Informatik. Mit solchen Problemen haben sich schon etliche Menschen beschäftigt - und auch Lösungen hervorgebracht. Nicht umsonst wird JavaScript auch als das "Assembler des Internets" betitelt. Irgendwo hab ich einen Compiler gesehen, der C Programme nach JavaScript kompiliert hat und diese dann im Browser ausführen lassen konnte.


----------



## SPS-freak1 (8 November 2014)

Kann man bei Siemens nicht auch Merker verwenden, die die CPU gar nicht kann ohne offline eine Fehlermeldung zu bekommen?


----------



## mariob (9 November 2014)

Hi,
ich habe mir das ganze Ding mal angetan zu lesen, ab so Seite 10 nur noch überflogen. Mal so ein paar Gedanken dazu, unsortiert und eher strategisch als technisch
 Also ich denke mit Codesys gibt es ein hinreichend gutes und hardwareunabhängiges Programmmiersystem was eigentlich wahrscheinlich nur wenige Wünsche offenläßt. Weiter gedacht, auch wenn ich eigentlich AWLer bin, diese Sprache ist in weiten Teilen zu hinterfragen ob noch zeitgemäß. Sicher gibt es da Anwendungen in denen es nicht anders geht, aber wenn man ein wenig schaut so gibt es in der SPS Welt da auch gute, sagen wir mal Hochsprachenalternativen die genau das tun was der TE will.
Insofern, oder aus dieser Erkenntnis heraus ist es wahrscheinlich besser sich an bereits bestehenden Projekten zu versuchen, hier neue Richtungen und Impulse zu geben als von null an etwas zu entwickeln worüber man am Ende abstirbt.
Ich bin ja eigentlich noch in einem ganz anderen Maschinenbausegment unterwegs, und wenn ich so z.B. über eine Messe laufe (wenn ich denn wieder kann) dann sehe ich den Zoche in seiner Ecke und einige Stände weiter den Häberer, und wieder weiter.... Jeder ist für sich ein guter Ingenieur und wahrscheinlich auch glänzender Entwickler, hat gute Ideen, setzt auch Teile davon um. Aber zusammenfinden, auch wenn die Gesellschaft das nicht will, diese Denkblockade sollte gelöst werden. Und dann kommen da am Ende richtig gute und mit guten Ideen durchsetzte zuverlässige Produkte heraus und kein Kleinkram der nur an einer Stelle gut funktioniert und an anderer so antiquiert ist das dieser Vorteil komplett unwichtig wird.
Ich oute mich mal als Zoni, aber sowas gab es dort nicht, unser Problem war vielmehr die unterbundene Kommunikation und das solche Leute wenn privat, unterdrückt wurden. In Betrieben als Angestellte sah das dann schon anders aus und da ging viel. Und das vermisse ich.
Naja, was ich damit auch sagen will an die Adresse des TE, man wird auch nicht dümmer wenn man etwas bestehendes verbessert. Im Gegenteil es ist die anspruchsvollere Disziplin. Und wahrscheinlich weniger verschwendete Lebenszeit, Hinweise gibt es hier ja genug.
Das nicht als Klugscheißerei sondern vielmehr zu Effektivitätssteigerung.

Gruß
Mario


----------



## Blockmove (9 November 2014)

@Mario

Es gibt zur Zeit zwar viele Projekte rund um das  Thema Automatisierung, aber mir persönlich sind nur sehr sehr wenige bekannt, die auf die Funktionsweise einer SPS setzen.
Deshalb sind die Möglichkeiten hier in bestehende Projekte einzusteigen sehr begrenzt.

Gruß
Dieter


----------



## mariob (9 November 2014)

Hi,
@Dieter, Du hast erstmal recht, warum das so ist wurde ja schon diskutiert, und auch warum das ganze, sagen wir mal - begrenzten Sinn hat. Nicht das ich das nicht gut finde, ich halte es lediglich für nicht besonders effektiv. Thats all. Und halt mal in eine andere Richtung gedacht als nur die Aussage das das sinnlos ist und scheitern wird und wasweißichnochalles.

Gruß
Mario


----------



## Blockmove (9 November 2014)

mariob schrieb:


> Hi,
> @Dieter, Du hast erstmal recht, warum das so ist wurde ja schon diskutiert, und auch warum das ganze, sagen wir mal - begrenzten Sinn hat. Nicht das ich das nicht gut finde, ich halte es lediglich für nicht besonders effektiv. Thats all. Und halt mal in eine andere Richtung gedacht als nur die Aussage das das sinnlos ist und scheitern wird und wasweißichnochalles.
> 
> Gruß
> Mario



Ich betrachte das Projekt von omgitworks keinesfalls als sinnlos.
In Gegenteil!

Falls es wirklich in Richtung Smarthome / Homeautomation gehen sollte, dann könnte ich auf viele der diskutierten Dinge locker verzichten.
Online-Change ist z.B. eines davon.
Das Problem bei vielen Communities im Umfeld bestehender Projekte aus diesem Bereich, ist schlichtweg Ignoranz gegenüber der Funktionsweise einer SPS.
Glaub mir ... Ich weiss da wovon ich spreche. 
Wenn du in den entsprechenden Foren liest, dann stösst du auf viele Probleme die aus Event-Steuerung und / oder fehlendem Prozessabild resultieren.
Da wird dann mit Semaphoren, Threads und Locks gearbeitet .... Bis sich halt das System zu Tode verriegelt 

Deshalb finde ich den Ansatz des TE interessant und lass mich überraschen was rauskommt


----------



## mariob (9 November 2014)

Hi,
@Dieter, wir sind wahrscheinlich näher beieinander als Du denkst, nur hier denke ich wahrscheinlich zu pragmatisch. Ich stelle mir das so vor Raspi als Hardware, der ist ein guter Standard, Gehäuse gibt es ja nun mittlerweile auch taugliche Lösungen. Hardware fertich und auf wahrscheinlich lange Sicht kompatibel verfügbar.
Softwareseite mit Codesys und als übergeordnete HMI pvbrowser, hier würde ich noch gewaltiges Potential sehen bezüglich z.B. Panels (die es noch nicht gibt) und im Grunde bietet auch der ja irgendwo die Möglichkeit mit Skripting Steuerungsaufgaben zu lösen. Inwieweit das schon ausgebaut ist entzieht sich meiner Kenntnis.
Leider bin ich beruflich wie privat recht gut mit Projekten bestückt, so ich leider viel zuwenig Zeit für sowas habe. Tja, andere versaufen in der Kneipe ihre Zeit.....

Gruß
Mario


----------



## RobiHerb (12 November 2014)

Es gibt auch andere, die zu diesem Thema unterwegs sind oder waren

http://sourceforge.net/projects/beremiz/


----------



## omgitworks (14 November 2014)

Auch wenn ich nicht immer Zeit habe zu antworten, ich schau hier spätestens alle zwei Tage rein.

@RobiHerb: Sehr interessant, danke!

Mittlerweile bin ich vom Raspberry Pi abgerückt. Ich hab mich mit anderen kurzgeschlossen, die mir davon abgeraten hatten. Nachdem ich dann recherchiert hat, habe ich herausgefunden, dass der Pi keine Open Hardware ist. Es gibt da aber andere Hersteller, die zudem mit dem Ziel entwickeln, auch industriegerechte Boards zu entwickeln (Störungssicherheit), z.B. Olimex (https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXino-LIME/open-source-hardware).

Softwareseitig bin ich dabei die ganzen müßigen Arbeiten zu erledigen, Projekte laden, erstellen, Einstellungen vornehmen usw. Danach werde ich erstmal dokumentieren müssen, wie der Aufbau der Software gestaltet ist.

edit: Unter http://www.cats-io.com/related-projects/ gibt es nun eine Übersicht zu ähnlichen Projekten, die Open Source, Open Hardware, oder beides sind. Ich nutze die Seite auch als öffentlicher Notizblock, sodass man da gut einen Überblick zusammentragen kann. Wer sich selbst oder andere darauf vermisst, einfach bescheid sagen, dann trag ich es ein.


----------



## Blockmove (14 November 2014)

Ich dachte du willst eine plattformübergreifende Lösung erstellen?
Solange du auf Linux als Basis setzst, ist doch das Board fast egal.


----------



## omgitworks (14 November 2014)

Hallo Krumnix,

ich setze auf Linux als Hauptplattform. Allerdings kannst du die Steuerung dann auch mit einem Windowsrechner z.B. programmieren. Wenn du wolltest, könnten du ein Windows-basiertes Board nehmen und mit Linux entwickeln, oder alles mit Windows machen. Das Programm läuft eben auf allen gängigen Betriebssystemen (siehe: http://qt-project.org/doc/qt-5/supported-platforms.html).

Ich kann mir denken, dass es manchmal aus technischen Gründen notwendig ist, einen Teil der Anlage eben nicht aus Open Hardware/Open Source bestehen zu lassen. Dann wäre es ja ärgerlich wenn man den Betrieb kategorisch aussschließt.


----------



## Blockmove (15 November 2014)

Vielleicht ist auch das was für dich:
http://www.espruino.com/


----------



## omgitworks (16 November 2014)

Stimmt! Hab's in die Liste aufgenommen, danke.


----------

