Die Firma SIEMENS® setzt zur Kommunikation mit den Automatisierungsgeräten der SIMATIC® S5 Familie und PC's/PG's das AS511 Protokoll ein. Zusätzlich wird das Protokoll von diversen anderen Geräten z.B. Operatorpaneels verwendet. Leider wurde das Protokoll bis jetzt nicht offen gelegt. Da es zu beginn des Projekts meines wissens noch keine Treiber gab, habe ich mich entschlossen selbst einen Treiber zu schreiben. Zunächst wird die Einstellung der seriellen Schnittstelle benötigt. Glücklicherweise waren die Einstellungen der Seriellen Schnittstelle in einem Dokument, das ich in den tiefen des Internet gefunden habe beschrieben. Mit diesen Informationen, konnte ich die Schnittstelle so Programmieren, daß ich eine Verbindung zur SPS aufbauen konnte. Mit einem PG wurde der weiter unten beschriebene Aufbau umgesetzt um einen Mitschitt der PG Funktionen erstellen zu können. Nach und nach kamen immer mehr Funktionen hinzu. Leider stehen mir nicht alle CPU typen zur Verfügung. Deshalb ist es nicht gewährleistet dass die Funktionen bei einer anderen, als der vom mir Verwendeten S5 100U CPU103 funktionieren. Insbesondere die CPU 945, 928 und 948 werden warscheinlich nicht laufen. Sobald ich eine dieser CPUs zur Verfügung habe, werde ich die fehlenden Funktionen implementieren. Um zu sehen, wie ein Programmiergerät mit der SPS kommuniziert, habe ich den nachfolgend beschrieben Aufbau realisiert.
Ein PG (Programmiergerät) dient als Datenlieferant. Das PG wird mit der Seriellen Schnittstelle über ein Nullmodemkabel mit einen Linuxrechner verbunden. Die zweite Schnittstelle des Linux Rechners wird mit dem Eingang eines Schittstellenwandlers verbunden. Der Ausgang des Schnittstellenwandlers Geht zur PG-Schnittstelle der SPS. Informationen, wie man einen Schnittstellenwandler baut, der die Pegel von RS232 auf TTY 20mA wandelt, giebt es im Internet. Der in der Schaltung verwendete Chip ist der MAX232, der diese Aufgabe übernehmen kann. Das Programm auf dem Linuxrechner ist recht simpel aufgebaut. Es arbeitet mit zwei Threads. Der erste Thread liest Daten von der Schnittstelle des PG und Schreibt sie auf die Schnittstelle des AG sowie auf die Console. Der zweite thread macht das Gleiche in Gegenrichtung. Den Quelltext für die Scannersoftware habe ich hier abgelegt. Dieses Programm ist so winzig, dass es sich nicht lohnt, ein Projekt davon zu machen. Mit dem jetzigen Stand des Treibers ist es möglich alle PG Funktionen ohne die Fehlersichern Befehle auszuführen. Einige Funktionen sind noch jedoch noch nicht vollständig implenentiert. Es würde mich freuen, wenn mir jemand weitere Informationen über das AS511 Protokoll senden kann. Wer möchte kann mir unter Peter Schnabel informationen zukommen lassen. Bitte verwendet ausschlieslich einen sourceforge Account, da ich sonst, trotz Spamfilter, sehr viele "unerwünschte" emails erhalte. |