Hersteller der Automatisierungsbranche gibt es reichlich. Doch was für ein Programmiersystem passt für unser Vorhaben am Besten? Im Nachfolgenden werden kurz die Platformen der beiden größten Automatisierungshersteller auf Basis von Erfahrungswerten und eigener Meinung verglichen.
Kategorie | Beckhoff TwinCat (Codesys) | Siemens Simatic-Manager |
---|---|---|
Plattform |
Beckhoff kommt von der IPC-Seite. Beim Gebrauch ist zu erkennen, dass Beckhoffs SPS-Systeme auf Basis der x86-Prozessorsystemen stammen und entsprechend zuverlässig darauf funktionieren. Das kann bereits ein wichtiger Entscheidungsfaktor sein, falls Steuerung und HMI auf einem IPC laufen sollen. Deshalb könnte (kann) Beckhoffs TwinCat-System auf so ziemlich allen handelsüblichen Computersystemen laufen, da hier stark auf Standards gesetzt wurde. |
Siemens kommt von der Hardware-Seite, bei dem die SPS in Hardware-Chips gegossen wird. Diese funktionieren außerordentlich zuverlässig. Sie können problemlos aus und eingeschalten werden. Da die meisten Komponenten Siemens-seitige Entwicklungen sind, sind diese zwar zuverlässig, dafür aber vergleichsweise teuer. Eine handelsübliche SD-Karte funktioniert somit nicht in Simatic-CPUs. Es muss eine Original sein. |
Funktionalität |
Da Beckhoffs TwinCat-System auf IPC mit Betriebsystem laufen, sind Interaktionen mit dem Betriebsystem recht einfach umsetzbar. Soll aus der SPS heraus eine Datei gelesen oder geschrieben werden, ist dies durch einen einfachen Bibliotheks-Funktionsaufruf möglich. Ebenso Anbindung an Datenbanken. |
Da die Siemens SPS als auch die softwarebasierte SPS (wie WinLC) eine abgeschlossene Blackbox dastellt, ist eine Interaktion mit datenverarbeitenden Modulen sehr umständlich und zeitaufwendig. Wer mit einer WinLC auf dem Host mal eben eine Datei auslesen will, merkt schnell, dass das ohne Weiteres nicht möglich ist. Für die eine oder andere Aufgabe gibt es zwar Softwaremodule käuflich zu erwerben, diese lassen sich die Entwickler aber gerne bezahlen. |
Schnittstellen zu Eigenprogrammen |
Beckhoff liefert hier frei Haus DLLs mit Dokumentation, die im eigenen Code eingebunden werden können. |
Wer bei Siemens nach dem Protokoll für S7-Kommunikation sucht wird nicht fündig werden. Man bekommt den Eindruck, dass dies nicht gewollt ist und hier lieber eigene Produkte für bekannte Preise verkauft werden sollen. |
Programmierumgebung |
Mit dem von Beckhoff eingesetzten und angepassten Codesys-System Twincat sind schnell komplexe Aufgaben umzusetzbar. Die Verwendung von 'Strukturiertem Text' und 'Ablauf-Diagrammen' sind übersichtlich und einfach 'Debugbar'. Verwendung von Strings machen die Bibliotheksfunktionen einfach wie bei anderen Hochsprachen. |
Im Simatic-Manager wird auch heute noch viel AWL oder KOP verwendet. Dies ist für einfachste Aufgaben ausreichend. Bei komplexeren Aufgaben steht man ziemlich schnell am Ende der Möglichkeiten. Wer hier alleine schon eine Array-Schleife verwenden will, muss selbst mal schnell 100 Zeilen Code schreiben. Oder wer mit einem String arbeiten soll, lehnt dies besser vorher ab. Das AWL-Programmiersystem ist leider nur als besserer Assembler zu verwenden. Der Einsatz von 'Struktuiertem Text' wird schnell bei der Diagnose bzw. beim Debuggen graue Haare bekommen, da hier gerne mal falsche oder nicht die gewollten Werte angezeigt werden. |
Online-Programmansicht und Programm-Diagnose |
Im TwinCat werden in der Onlineansicht alle Werte zu jeder Variablen im richtigen Format dahinter angezeigt. Des Weiteren ist beim TwinCat-System ein Scope-View dabei, mit dem alle Werte nach Zeit oder eigener Scala grafisch als Scope angezeigt werden können. Ebenso können Trigger konfiguriert werden. Dies kann für Fehlersuchen besonders für sporadische Fehler lebensrettend sein. |
Im Simatic-Manager werden in der Online-Ansicht eingeschränkt Aktualwerte angezeigt. Das Variablen-Format für z.B. Integer-Werte kann nur eines angezeigt werden. Strings oder Strukuren werden nicht angezeigt. Es können zwar Variablentabellen angelegt werden, dies muss aber immer händisch passieren, sowie dessen Format selbst definiert werden. Dies ist unglaublich zeitaufwendig und sehr programmiererunfreundlich. Ein Scope gibt es im Simatic-Manager nicht. Es gibt allerdings von verschiedenen Herstellern solche Tools, diese sind allerdings sehr teuer und umständlich zu konfigurieren. |
Online-Programmänderungen |
Im TwinCat wird ein Programm übersetzt. Unterscheidet dies sich zum Programm der CPU wird dies angezeigt. Beim Download werden alle Änderungen übertragen. Variablen-Werte und Strukturen bleiben dabei erhalten. Selbst die Erweiterung von Strukturen ist ohne Datenverlust möglich. Ein On-Offline Programmvergleich ist nicht möglich. |
Im Simatic-Manager ist der Programmcode in sogenannten Bausteinen hinterlegt. Jeder Baustein kann separat auf die CPU geladen werden. Ob dieser dann zu dem restlichen Programm passt, liegt in der Varantwortung des Programmierers. Da größere Datenmengen sowie komplexe Strukturen in sogenannten Datenbausteinen abgelegt sind, muss hier besonders mit Vorsicht herangegangen werden. Eine Änderung an einem Datenbaustein initialisiert diesen neu. Nach dessen Download sind alle bisherigen darin gespeicherten Werte weg. Schlecht, falls hier beispielswiese Variantendaten enthalten waren. Durch das Baustein Prinzip können On-Offline-Programmvergleiche durchgeführt werden (sofern kein 'Strukturierter Text' zum Einsatz kam). |