Schon eine längere Zeit hatte ich zuhause noch eine kleine Siemens S7-200 herumliegen, die ich einmal günstig bei eBay erstanden habe. Da ich aber kein entsprechendes PC/PPI-Programmierkabel besessen habe, diente die SPS nur als Staubfänger. Der Kauf eines "originalen" Programmierkabels hätte den Kaufpreis der SPS (13€) um einiges überschritten. Nach einiger suche im Internet tat sich auch ein passabler Schaltplan in einem Thread auf mikrocontroller.net (siehe Quellen) auf.
Anforderungen
- Kommunikation mit einer S7-200 über Step7 MicroWin
- Einfacher aufbau, wenig Bauteile
Hardware
Pinbelegung
Pinbelegung der MPI/DP-Schnittstelle (S7-200)
Pin-Nr. | Kurzbezeichnung | Bedeutung | Ein-/Ausgang |
---|---|---|---|
1 | NC | - | - |
2 | M24 EXT | Masse (GND) der 24V Versorgung | Ausgang |
3 | LTG_B | Signalleitung B (RS485) | Ein-/Ausgang |
4 | RTS_AS | Steuersignal für Datenstrom. High wenn CPU sendet | Ausgang |
5 | NC | - | - |
6 | NC | - | - |
7 | P24 EXT | Versorgung (+24V max. 150mA) | Ausgang |
8 | LTG_A | Signalleitung A (RS485) | Ein-/Ausgang |
9 | RTS_PG | Steuersignal für Datenstrom. High wenn PG/AG sendet | Eingang |
Schaltplan
Als Spannungs-Versorgung der Schaltung dient die SPS, da diese über ihren Kommunikationsaunschluss bereits +24V vorhält. Somit wird wie beim originalen PC/PPI-Kabel von Siemens keine externe Spannungsversorgung benötigt. Mittels eines einfachen Linear-Reglers werden aus den +24V, +5V gewonnen.
Auf der linken Seite ist ein 9-polliger Sub-D Anschluss zu erkennen an dem der PC mit einem seriellen Kabel verbunden werden muss (kein Nullmodem-Kabel). Der MAX233 vollzieht die Pegelwandlung von +12V/-12V (Standard RS232-Pegel) auf 0V/5V.
Die eigentliche Wandlung in ein Differentielles Spannungssignal vollzieht der IC SN75176AP (Datenblatt siehe Quellen). Der Timerbaustein NE555 dient dazu nach einer gewissen Sendzeit auf Empfangen umzuschalten (näheres siehe Funktionsweise).
Auf der rechten Seite befindet sich ebendfalls ein 9-polliger Sub-D Anschluss. Mit diesem wird die Verbindung zu der SPS hergestellt.
Der mit dem Text "Baudrate" gekennzeichnete Jumper ermöglicht ein wechseln zwischen zwei Baudraten. Ist der Jumper nicht gesteckt muss eine Baudrate von 9600 bps in Step7-MicroWin eingestellt werden. Ist der Jumper gesteckt ist die doppelte Baudrate möglich (19200 bps).
Probleme
Natürlich hat der ganze Aufbau nicht auf Anhieb funktioniert.Dem bin ich mit einem Oszilloskop auf die schliche gekommen, indem ich den Signalpfad bis zu dem Mikrocontroller auf der S7-212 verfolgt habe.Sind die Signalleitungen auf der RS485 Seite vertauscht verweigert Step7 MicroWin die Kommunikation und macht mit einer Fehlermeldung darauf aufmerksam, dass es zu einem Timeout gekommen ist. Der Timeout rührte daher das die gesendeten Daten (RS232 TXD) am TXD Pin des Mikrocontrollers der S7-212 weitergeleitet wurden. Was natürlich falsch ist. Also die RS485 Signalleitungen getauscht und es funktionierte. In den Bildern erkennt man noch das Adapterkabel das den Tausch der Signalleitungen bewerkstelligt. Auf ein Neuätzen der Platine hatte ich keine lust. In der aktuellen RevB des Schaltplans ist dieser Fehler bereits behoben.
Funktionsweise
Der MAX232 in Standard-Beschaltung vollzieht, wie auch schon oben beschrieben, die Pegelwandlung. Die Kommunikation mit der SPS geschieht über differentielle Übertragung, da diese deutlich Störfester über große Distanzen ist als eine herkömmliche RS232-Verbindung. Der Nachteil der differentielen Übertragung liegt darin, dass nur zwei Leitungen genutzt und somit eine Richtungsumschaltung mittels weiteren Komponenten geschehen muss. Da kommt der Timerbaustein NE555 ins Spiel. Dieser nutzt die RS232-TXD Leitung als Triggersignal und schaltet den Baustein 75176 nach einer bestimmten Zeit (abhängig vom Baudraten-Jumper) von Senden auf Empfangen.
Bilder
Quellen
"RS232 - RS485 Schaltplan" Thread auf mikrocontroller.net
Belegung der MPI/DP-Schnittstelle
Datenblatt TI SN75176AP
Anhang
File:RS232 RS485 Converter RevB.brd.pdf
File:RS232 RS485 Converter RevB.sch.pdf