Lazarus™ schrieb:
Hi Zottel,
da ich nun wieder etwas mehr Zeit für "Hobby"
habe, werde ich mal sehen, ob es nicht noch eine Aufgabe für mich gibt. Du weisst, mein Steckenpferd ist Pascal/Delphi. Wir hatten ja schon mal geplaudert, mich würde ein Interface zum CP5611
Na ja, von dem CP5611 bin ich nicht so begeistert:
Unter Windows könnte man die vorhandenen Treiber und Bibliotheken nutzen. So macht das AgLink wahrscheinlich auch. Unter LINUX muß man bei 0 beginnen. Brächte man eine hypothetische Linux-Lösung nach Windows, vertrüge es sich nicht mehr mit Step7 oder anderen Produkten, die auf den Siemens-Treibern aufsetzen.
Lohnt der doppelte Aufwand?
Im Prinzip ist der CP5611 wohl ein Profibus-Master ASIC (hab die Typenbezeichnug vergessen), das mit einem PCI-Interface verbandelt ist. Das ASIC ist dokumentiert und die Dokumetation frei zugänglich. Wenn man wüßte, wie seine Register und der dual-port-Speicher in den PCI-Adressraum eingeblendet werden, könnte man Software dafür schreiben. Leider hat das ASIC so wenige lesbare Register, noch dazu solche, deren Inhalt nach einem Reset definiert wäre, daß es etwas schwer herauszufinden ist.
CP5611 paßt nicht ins Notebook. CP5511 paßt nicht in einen Desktop-PC.
Wenn ich einen PC in eine Maschine/Produktionshalle stelle, ist es das beste, er hat keine eingebaute Zusatzhardware und bootet vom Netzwerk. Dann kann man einfach einen anderen hinstellen, keine Bastelei, keine Installation.
Hier wird es richtig interessant:
CP an USB wäre also ideal. Nun gibt es ja USB/MPI(Profibus)-Adapter. Leider sind das jedoch alles serielle Adapter. Das bedeutet, die USB-Seite muß dazu bereit sein, einzelne Zeichen zu empfangen. Im Prinzip ein Interrupt pro Zeichen (vom FIFO abgesehen).
Man müßte also nur mal einen USB-Profibus Adapter konstruieren, der als "Netzwerkkarte" agiert, also grundsätzlich ganze Pakete behandelt.
USB1.1 ist mit 12MBaud genauso schnell wie Profibus, mindestens USB2.0 kann auch noch den eventuellem Overhead verlustfrei behandeln.
Rezepte:
1. Die ordentliche Lösung: Einen USB2.0--Chip und ein Profibus-ASIC verbinden.
2. Die Billig.Lösung, etwas langsamer und nicht Profibus-zertifiziert: USB 1.x und Profibus auf einem Mikrocontroller implementieren. Gäbe immer noch ein ordentlich schnelles Programmierwerkzeug.
Also über RS232 läuft das LinNoDave ja echt Supi und macht auch nach SPS-Ausfall wieder weiter...
Über Ethernet auch. Und mit USB-MPI-Adaptern, die einen COM-Port emulieren sollte es auch keine Probleme geben...aber danke, daß du es sagst; ich meinte schon, die Diskussion von Problemen rückte Libnodave in ein schlechtes Licht.