PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verdrahtungstest für Schaltschrank



Frueller
09.10.2013, 09:15
Hallo Leute,

ich möchte einen Verdrahtungstest für einen Schaltschrank bauen.
Die eine Seite der Leitungen gehen auf Stecker die dann in verschiedene SPSn führen (ca. 500 Stück)
Die andere Seite geht teils auf Klemmleisten und teils auf Stecker (ca. 500 Stück)
Ich möchte einfach ein Signal auf eine Leitung geben und am Ende das Signal wieder abfragen.
Am Klemmleistenabgriff arbeite ich gerade.
Mir steht eine ESX-3XL SPS zur Verfügung, die 3XL wird in C programmiert.

Nun zu meinem Problem:
Da ja die SPS keine 1000 IOs hat, brauche ich etwas anderes das 1000 IOs hat.
Ich habe dabei an eine Multiplexschaltung gedacht, bei der Ein- und Ausgangsseite aus jeweils 34 16er MUXEN und einer 2er MUX besteht, also insgesamt 70 ICs.
Da dies mein einziger Ansatz bis jetzt ist, wollte ich euch fragen, ob das so möglich wäre, bzw ob jemand eine bessere Lösung weis?
Bitte auch posten, wenn es ein ganz anderer Weg wäre.

Ich bin für alles dankbar!

Danke an Alle!

Schöne Grüße

PICture
09.10.2013, 12:00
Hallo!

Meine unausprobierte "verrückte" Idee wäre: einen verkabelten Schaltsrank wie ein PROM auszulesen, dh. Eingänge als Adressbits und Ausgänge als Databits zu behandeln.

Frueller
09.10.2013, 14:24
Danke für die Antwort!

Nur leider kann ich damit gerade nicht so viel anfangen, könntest du mir das bitte etwas genauer erläutern?

Danke schön!

PICture
09.10.2013, 14:50
Sorry, bin aber kein Schriftsteller, also bitte selber suchen: http://de.wikipedia.org/wiki/Programmable_Read-Only_Memory . ;)

robin
09.10.2013, 15:15
Fass wir mal zusammen, du benötigst 500 Ausgänge, die du an die Eingänge deiner SPS anschliest udn dann noch 500 Eingänge um das ergebnis aubzufragen.

Da stellen sich mir ein Paar fragen,

1. Wie viele Mögliche Kombinationen gibt es am Eingang? (wegen dem benötigtem Speicherplatz und der Geschwindigkeit)
2. Ändert sich das Ausgangssignal Zeitlich, oder sind alles feste Zustände? (Geschwindigkeit der Eingänge)

Der Anzatz mit dem Multiplexern ist nicht schlecht. Hier musst du aber aufpassen, das sich die Signale nicht ändern oder du ein Multiplexer mit latch Eingang verwendest. Denn nur so ist ein Zeitliches Abbild der Ausgänge möglich.

Wenn ich Picture richtig verstanden habe, meint er eine riesige Look-up table, diese wäre aber 2^500 Byte groß (hab bei Gigabyte aufgehört zu zählen und das waren es immernoch *10^130 GB), was sich wohl nicht umsetzen lässt.
Deshalb würde ich an deiner Stelle erst einmal Frage 1 und 2 klären bevor ich mir weitere Gedanken mache.

Frueller
09.10.2013, 15:38
Hallo,

danke für deine Antwort!

zu 1: Es soll eine Leitung nach der Anderen auf Durchgang geprüft werden, also z.B. Kanal 15 (OutputSeite) anwählen -> Signal auf Kanal 15 ausgeben -> Kanal 15 (Input Seite) anwählen -> Überprüfen ob Signal ankommt
Bzw jeden Eingang einmal abfragen um Querschlüsse auszuschließen.

zu 2: Es handelt sich um reine digitale Signale in fester Höhe, Geschwindigkeit ist zweitrangig

PICture
09.10.2013, 16:25
@ robin

Du hast mich fast richtig verstanden, aber bei jeweils 500 Leitungen am Ein- und Ausgang werden es "nur" 2^500 Kombinationen. Hardwaremässig sollte es jedoch einfacher werden, weil es keine MUXs nötig sind.

Peter(TOO)
09.10.2013, 18:15
Hallo,

zu 1: Es soll eine Leitung nach der Anderen auf Durchgang geprüft werden, also z.B. Kanal 15 (OutputSeite) anwählen -> Signal auf Kanal 15 ausgeben -> Kanal 15 (Input Seite) anwählen -> Überprüfen ob Signal ankommt
Bzw jeden Eingang einmal abfragen um Querschlüsse auszuschließen.

zu 2: Es handelt sich um reine digitale Signale in fester Höhe, Geschwindigkeit ist zweitrangig

Ich würde das mit Schieberegistern machen.

Also immer eine Kombination aus einem Serial_to_Pararallel und einem Pararallel_to_Sererial. Die Ausgänge als Open Collektor und an diesen Ausgang direkt den Eingang des Par_to_Ser anschliessen.

Die ICs für die Ausgänge kannst du alle in Serie schalten, da musst du dann nur eine einzelne "1" durchschieben. Das belegt die dann 2-3 Ausgänge der SPS (Clock, Data, evtl Reset.)
Mit 125 8-Bit-Registern kommst du dann auf dein 1'000 Ausgänge.

Für die Eingänge brauchst du 2 Steuerleitungen (Clock und Load) und eine Datenleitung. Die Schieberegister kann man dann in Serie und parallel anschliessen, sind nochmals 125 ICs.

Also wenn die SPS 100 IOs hat, gehen 5 für Steuersignale ab.
Mit jeweils 2 8-Bit Registern in Serie, belegst du dann noch zusätzlich 63 Eingänge der SPS.

Du kannst aber alle Möglichen Kombinationen Austesten und auch Fehler analysieren.

Das Ganze würde ich dann als Module realisieren, z.B. mit Jeweils 64 Anschlüssen, welche man über Kabel hintereinander schalten kann. Ist dann auch leicht ausbaubar, wenn du mal 2'000 Anschlüsse testen musst.

MfG Peter(TOO)

redround
09.10.2013, 19:58
an einen Mikrocontroller mit I2C kann man 8 PCF8574 sowie 8 PCF8574A Portexpander anschließen. Das wären zusammen 128 Ports. Das könnte man als eigenständiges Prüfmodul aufbauen. Mehrere dieser Module werden dann über einen RS485 zusammengeschaltet. Damit würden sich dann weit mehr als 1.000 Ports realisieren lassen ;-)

Vom Prinzip her also so etwas: http://cboden.de/mikro-controller/digispark/20-mikrocontroller/45-pin-finder ... nur dass hier halt statt einer manuellen Prüfspitze das Masse-Signal durch den Controller geschaltet werden müsste ... das ist aber kein Problem. Die Auswert-Logik müßte man halt anpassen und die RS485 Kommunikation einbauen ... aber auch das ist alles kein Hexenwerk.

Slowly
09.10.2013, 20:15
Multiplexen ist auf jeden Fall die richtige Methode und Du benötigst wirklich eine ganze Menge Multiplexer. Ich habe früher mit solchen Verbindungstestern gearbeitet, die bis zu 5000 Verbindungen geprüft haben. !9" Einschübe für Eurokarten in Wirewraptechnik wurden geprüft. Jede Verbindung muß als Ausgang oder als Eingang funktionieren. Mal sehen ob ich noch Unterlagen dazu finden kann... es war nicht so kompliziet, nur eine ganz schöne Hardwareschlacht.

Peter(TOO)
09.10.2013, 20:40
Hallo,

Vom Prinzip her also so etwas: http://cboden.de/mikro-controller/digispark/20-mikrocontroller/45-pin-finder ... nur dass hier halt statt einer manuellen Prüfspitze das Masse-Signal durch den Controller geschaltet werden müsste ... das ist aber kein Problem. Die Auswert-Logik müßte man halt anpassen und die RS485 Kommunikation einbauen ... aber auch das ist alles kein Hexenwerk.

Stell dir das mal nicht so einfach vor, besonders die Synchronisierung und der Zeitaufwand.

Zuerst muss du an alle Module den Befehl schicken, das entsprechende Ausgangsmuster zu senden. Dann abwarten bis sicher alle ihre Ausgänge gesetzt haben (Rückmeldung). Dann noch etwas abwarten, damit die Kapazitäten im Schaltschrank sauber umgeladen sind und erst dann kannst du die Eingänge einlesen lassen.

Wenn man jetzt auf ganz sicher gehen will, und nur 500 1:1 Drahtverbindungen hat, muss man 500 mal ein einzelnes Bit setzen und 500 mal 1'000 Bits einlesen.

Was jetzt noch gar nicht getestet wird, sind lose Klemmen und schlechte Übergangswiderstände. Dazu müsste man nicht nur mA , sondern ganze Ampere fliessen lassen.
Um Wackelkontakte finden zu können muss das System möglichst schnell sein! Dann lässt man es rundum laufen und rüttelt an den Drähten. Das bringt aber nichts, wenn ein Umlauf Minuten dauert.

MfG Peter(TOO)

redround
09.10.2013, 23:07
jeder Controller hat ja "nur" je ein Byte von 16 verschiedenen I2C Devices zu lesen. Wenn wir von einem Standard I2C ausgehen, hat der eine Taktfrequenz von 100 kHz. Wenn wir mal großzügig für die Abfrage eines Bausteins (Adresse senen, ACT senden, Daten senden, Stop senden usw.) mal 50 Bus-Zyklen ansetzen, schaffen wir also 2.000 Abfragen pro Sekunde. Wenn wir noch ein wenig Overhead für die Verarbeitung im Controller mitrechnen dürften es also theoretisch möglich sein, alle Expander 100 mal pro Sekunde abzufragen. Wenn ein Modul keine Veränderung eines seiner Eingangs-Pins erkennt, muss es auch nicht per RS485 kommunizieren. Wenn es jedoch eine fallende Flanke erkennt, meldet es das an ein Master-Modul. Das nimmt alle "Treffermeldungen" entgegen und vergleicht es mit dem erwarteten Ergebnis. Zur Sicherheit wartet es doppelt so lange wie die Ergennung eigentlich dauert würde und sendet dann die Meldung für das Schalten des nächsten Test-Pegels. Damit sollten immer noch 50 verschiedene Signale pro Sekunde getestet werden können. Bei 500 Messpunkten würde ein Durchlauf also 10 Sekunden dauern. Wenn wir einen Fast-I2C oder weniger Bausteine pro Controller verwenden, wäre das ganze auch noch deutlich schneller zu schaffen.

Ich gebe Dir aber recht, dass damit lose Klemmen usw. nicht erkannt werden würden. Das Prüfergebnis würde nur aussagen, ob die richtigen Drähte in den richtigen Klemmen gelandet sind und ob es irgendwo Kurzschlüsse gibt :-)

Unregistriert
27.01.2015, 11:00
Es gibt mittlerweile fertige Lösungen zum Test von Verdrahtungen aller Art, auch mit Hochspannungstest zwischen allen Leitungen. System ist modular erweiterbar!
Hersteller ist adaptronic Prüftechnik GmbH in Wertheim

Crazy Harry
27.01.2015, 12:21
Du nimmst 8x 8 Stück 16-Bit Portexpander und hängst die an 2 4-Kanal-I²C-Multiplexer --> 1024 Pins. Der Aufbau sollte relativ klein machbar sein ..... aber verkabeln/anschliessen möchte ich das nicht :D